From 4c2df51b5ace4f5c0a1f8a76cdf536ac4432dd14 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 21 Feb 2003 15:24:18 +0000 Subject: Based on a patch from Daniel Berlin (dberlin@dberlin.org). * symtab.h: Add opaque declarations of struct axs_value and struct agent_expr. (enum address_class): Add LOC_COMPUTED and LOC_COMPUTED_ARG. (struct location_funcs): New type. (struct symbol): Add "loc" to aux_value. (SYMBOL_LOCATION_BATON, SYMBOL_LOCATION_FUNCS): New macros. * dwarf2read.c: Include "dwarf2expr.h". (dwarf2_symbol_mark_computed): New function. (read_func_scope): Use it. (var_decode_location): New function. (new_symbol): Use it. * dwarf2expr.c, dwarf2expr.h, dwarf2loc.c, dwarf2loc.h: New files. * Makefile.in (SFILES): Add dwarf2loc.c and dwarf2expr.c. (dwarf2expr_h, dwarf2loc_h): New variables. (COMMON_OBS): Add dwarf2expr.o and dwarf2loc.o. (dwarf2expr.o, dwarf2loc.o): New rules. (dwarf2read.o): Add $(dwarf2expr_h) and $(dwarf2loc_h). * buildsym.c (finish_block): Handle LOC_COMPUTED and LOC_COMPUTED_ARG. * findvar.c (symbol_read_needs_frame, read_var_value): Likewise. * m2-exp.y (yylex): Likewise. * printcmd.c (address_info, print_frame_args): Likewise. * stack.c (print_block_frame_locals, print_frame_arg_vars): Likewise. * symmisc.c (print_symbol, print_partial_symbols): Likewise. * ada-lang.c (ada_resolve_subexp, symtab_for_sym) (ada_add_block_symbols, fill_in_ada_prototype): Likewise. * symtab.c (lookup_block_symbol): Likewise. --- gdb/printcmd.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gdb/printcmd.c') diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 9b0c641..96d987a 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1149,6 +1149,11 @@ address_info (char *exp, int from_tty) } break; + case LOC_COMPUTED: + case LOC_COMPUTED_ARG: + (SYMBOL_LOCATION_FUNCS (sym)->describe_location) (sym, gdb_stdout); + break; + case LOC_REGISTER: printf_filtered ("a variable in register %s", REGISTER_NAME (val)); break; @@ -1814,6 +1819,7 @@ print_frame_args (struct symbol *func, struct frame_info *fi, int num, case LOC_REGPARM_ADDR: case LOC_LOCAL_ARG: case LOC_BASEREG_ARG: + case LOC_COMPUTED_ARG: break; /* Other types of symbols we just skip over. */ -- cgit v1.1