X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fax.h;h=e5bdbf621934bee71607106811840cf8dc1c27f1;hb=dc7ff8a60818f002d7b759210202e0aaabfeebc3;hp=1714bb4618bbd705f85727527db8209fdcdc2601;hpb=70b8286a9749deb6639c2fd5b39c7e4a26195738;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax.h b/gdb/ax.h index 1714bb4618..e5bdbf6219 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-2015 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -16,11 +16,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef AGENTEXPR_H -#define AGENTEXPR_H - -#include "doublest.h" /* For DOUBLEST. */ -#include "vec.h" +#ifndef AX_H +#define AX_H /* It's sometimes useful to be able to debug programs that you can't really stop for more than a fraction of a second. To this end, the @@ -80,20 +77,14 @@ enum agent_flaws /* Agent expression data structures. */ -/* The type of an element of the agent expression stack. - The bytecode operation indicates which element we should access; - the value itself has no typing information. GDB generates all - bytecode streams, so we don't have to worry about type errors. */ - -union agent_val - { - LONGEST l; - DOUBLEST d; - }; - /* A buffer containing a agent expression. */ struct agent_expr { + /* Construct an empty agent expression. */ + explicit agent_expr (struct gdbarch *gdbarch, CORE_ADDR scope); + + ~agent_expr (); + /* The bytes of the expression. */ unsigned char *buf; @@ -162,11 +153,8 @@ struct agent_expr int trace_string; }; -/* Pointer to an agent_expr structure. */ -typedef struct agent_expr *agent_expr_p; - -/* Vector of pointers to agent expressions. */ -DEF_VEC_P (agent_expr_p); +/* An agent_expr owning pointer. */ +typedef std::unique_ptr agent_expr_up; /* The actual values of the various bytecode operations. */ @@ -174,7 +162,7 @@ enum agent_op { #define DEFOP(NAME, SIZE, DATA_SIZE, CONSUMED, PRODUCED, VALUE) \ aop_ ## NAME = VALUE, -#include "ax.def" +#include "gdbsupport/ax.def" #undef DEFOP aop_last }; @@ -183,13 +171,6 @@ enum agent_op /* Functions for building expressions. */ -/* Allocate a new, empty agent expression. */ -extern struct agent_expr *new_agent_expr (struct gdbarch *, CORE_ADDR); - -/* Free a agent expression. */ -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); @@ -284,4 +265,4 @@ extern struct aop_map aop_map[]; extern void ax_reqs (struct agent_expr *ax); -#endif /* AGENTEXPR_H */ +#endif /* AX_H */