X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fax.h;h=536efe8e6b7b9480555791746513d88c6347f96e;hb=d1a760cbb796b62f18ff6b81a189fd261809ef74;hp=1c36125f65a273e4b46fbeacdbd065a5ab7259fd;hpb=28e7fd62340426746f9c896cbc40c5d374ec47aa;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax.h b/gdb/ax.h index 1c36125f65..536efe8e6b 100644 --- a/gdb/ax.h +++ b/gdb/ax.h @@ -1,5 +1,5 @@ /* Definitions for expressions designed to be executed on the agent - Copyright (C) 1998-2013 Free Software Foundation, Inc. + Copyright (C) 1998-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -143,6 +143,23 @@ struct agent_expr */ int reg_mask_len; unsigned char *reg_mask; + + /* For the data tracing facility, we need to insert `trace' bytecodes + before each data fetch; this records all the memory that the + expression touches in the course of evaluation, so that memory will + be available when the user later tries to evaluate the expression + in GDB. + + Setting the flag 'tracing' to non-zero enables the code that + emits the trace bytecodes at the appropriate points. */ + + unsigned int tracing : 1; + + /* This indicates that pointers to chars should get an added + tracenz bytecode to record nonzero bytes, up to a length that + is the value of trace_string. */ + + int trace_string; }; /* Pointer to an agent_expr structure. */ @@ -173,6 +190,9 @@ extern struct agent_expr *new_agent_expr (struct gdbarch *, CORE_ADDR); extern void free_agent_expr (struct agent_expr *); extern struct cleanup *make_cleanup_free_agent_expr (struct agent_expr *); +/* Append a raw byte to EXPR. */ +extern void ax_raw_byte (struct agent_expr *expr, gdb_byte byte); + /* Append a simple operator OP to EXPR. */ extern void ax_simple (struct agent_expr *EXPR, enum agent_op OP); @@ -221,7 +241,7 @@ extern void ax_reg_mask (struct agent_expr *ax, int reg); extern void ax_tsv (struct agent_expr *expr, enum agent_op op, int num); /* Append a string to the bytecode stream. */ -extern void ax_string (struct agent_expr *x, char *str, int slen); +extern void ax_string (struct agent_expr *x, const char *str, int slen); /* Functions for printing out expressions, and otherwise debugging