gdb/
[deliverable/binutils-gdb.git] / gdb / ax-gdb.h
index 973816c0071d2a49c7a4ae0683e43bb28c3b655c..c357fb6cd0b942f6106a52ef093d3a68f9f47c90 100644 (file)
@@ -1,11 +1,11 @@
 /* GDB-specific functions for operating on agent expressions
-   Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1998-2000, 2007-2012 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -14,9 +14,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef AX_GDB_H
 #define AX_GDB_H
@@ -79,9 +77,13 @@ struct axs_value
 
     /* The type of the subexpression.  Even if lvalue == axs_lvalue_memory,
        this is the type of the value itself; the value on the stack is a
-       "pointer to" an object of this type. */
+       "pointer to" an object of this type.  */
     struct type *type;
 
+    /* If nonzero, this is a variable which does not actually exist in
+       the program.  */
+    char optimized_out;
+
     union
       {
        /* if kind == axs_lvalue_register, this is the register number */
@@ -93,16 +95,6 @@ struct axs_value
 
 /* Translating GDB expressions into agent expressions.  */
 
-/* Given a GDB expression EXPR, translate it into the agent bytecode,
-   and return it.  FLAGS are from enum expr_to_agent_flags.  */
-extern struct agent_expr *expr_to_agent (struct expression *EXPR,
-                                        struct axs_value *VALUE);
-
-/* Given a GDB expression EXPR denoting an lvalue in memory, produce a
-   string of agent bytecode which will leave its address and size on
-   the top of stack.  Return the agent expression.  */
-extern struct agent_expr *expr_to_address_and_size (struct expression *EXPR);
-
 /* Given a GDB expression EXPR, return bytecode to trace its value.
    The result will use the `trace' and `trace_quick' bytecodes to
    record the value of all memory touched by the expression, and leave
@@ -110,4 +102,26 @@ extern struct agent_expr *expr_to_address_and_size (struct expression *EXPR);
    function to discover which registers the expression uses.  */
 extern struct agent_expr *gen_trace_for_expr (CORE_ADDR, struct expression *);
 
+extern struct agent_expr *gen_trace_for_var (CORE_ADDR, struct gdbarch *,
+                                            struct symbol *);
+
+extern struct agent_expr *gen_trace_for_return_address (CORE_ADDR,
+                                                       struct gdbarch *);
+
+extern struct agent_expr *gen_eval_for_expr (CORE_ADDR, struct expression *);
+
+extern void gen_expr (struct expression *exp, union exp_element **pc,
+                     struct agent_expr *ax, struct axs_value *value);
+
+extern void require_rvalue (struct agent_expr *ax, struct axs_value *value);
+
+struct format_piece;
+extern struct agent_expr *gen_printf (CORE_ADDR, struct gdbarch *,
+                                     CORE_ADDR, LONGEST, char *, int,
+                                     struct format_piece *,
+                                     int, struct expression **);
+
+extern int trace_kludge;
+extern int trace_string_kludge;
+
 #endif /* AX_GDB_H */
This page took 0.044683 seconds and 4 git commands to generate.