Wed Dec 2 15:11:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>

* tracepoint.c: Move default definition of
        TARGET_VIRTUAL_FRAME_POINTER from here to target.h.
        * target.h: Add default definition of TARGET_VIRTUAL_FRAME_POINTER.
        * ax-gdb.c (gen_frame_args_address, gen_frame_locals_address):
        use TARGET_VIRTUAL_FRAME_POINTER to determine frame pointer.
        (gen_trace_for_expr): new argument, address of tracepoint,
        gets passed to new_agent_expr and added to struct agent_expr.
        (is_nontrivial_conversion): call to new_agent_expr now requires
        a dummy argument.  (agent_command): use get_current_frame() to
        get current PC scope; pass it to gen_trace_for_expr.
        * ax-general.c (new_agent_expr): new argument, address of
        tracepoint; store it in new field of struct agent_expr.
        * ax.h (struct agent_expr): add new field for tracepoint address.
        * ax-gdb.h: change prototypes to match above changes.
This commit is contained in:
Michael Snyder
1998-12-02 23:22:58 +00:00
parent 077e3444ce
commit 55be5ef506
3 changed files with 49 additions and 28 deletions

View File

@ -970,7 +970,7 @@ validate_actionline (line, t)
/* we have something to collect, make sure that the expr to
bytecode translator can handle it and that it's not too long */
aexpr = gen_trace_for_expr(exp);
aexpr = gen_trace_for_expr (t->address, exp);
(void) make_cleanup ((make_cleanup_func) free_agent_expr, aexpr);
if (aexpr->len > MAX_AGENT_EXPR_LEN)
@ -1438,18 +1438,6 @@ free_actions_list(actions_list)
free(actions_list);
}
#ifndef TARGET_VIRTUAL_FRAME_POINTER
/* If anybody else ever uses this macro, then move this
default definition into some global header file such as defs.h.
FIXME: GDB's whole scheme for dealing with "frames" and
"frame pointers" needs a serious shakedown.
*/
#define TARGET_VIRTUAL_FRAME_POINTER(ADDR, REGP, OFFP) \
do { *(REGP) = FP_REGNUM; *(OFFP) = 0; } while (0)
#endif
/* render all actions into gdb protocol */
static void
encode_actions (t, tdp_actions, stepping_actions)
@ -1559,7 +1547,7 @@ encode_actions (t, tdp_actions, stepping_actions)
break;
default: /* full-fledged expression */
aexpr = gen_trace_for_expr (exp);
aexpr = gen_trace_for_expr (t->address, exp);
old_chain1 = make_cleanup ((make_cleanup_func)
free_agent_expr, aexpr);
@ -2322,7 +2310,7 @@ scope_info (args, from_tty)
struct minimal_symbol *msym;
struct block *block;
char **canonical, *symname, *save_args = args;
int i, nsyms, count = 0;
int i, j, nsyms, count = 0;
if (args == 0 || *args == 0)
error ("requires an argument (function, line or *addr) to define a scope");
@ -2365,9 +2353,9 @@ scope_info (args, from_tty)
case LOC_CONST_BYTES:
printf_filtered ("constant bytes: ");
if (SYMBOL_TYPE (sym))
for (i = 0; i < TYPE_LENGTH (SYMBOL_TYPE (sym)); i++)
for (j = 0; j < TYPE_LENGTH (SYMBOL_TYPE (sym)); j++)
fprintf_filtered (gdb_stdout, " %02x",
(unsigned) SYMBOL_VALUE_BYTES (sym) [i]);
(unsigned) SYMBOL_VALUE_BYTES (sym) [j]);
break;
case LOC_STATIC:
printf_filtered ("in static storage at address ");