diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 20a8af771f..686d16ff43 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2002-07-11 Corinna Vinschen + + * stack.c (print_frame): Use result of frame_address_in_block() + instead of fi->pc when evaluating symbols. + (backtrace_command_1): Ditto. + 2002-07-11 Andrew Cagney * cris-tdep.c (cris_saved_pc_after_call): Fix parameter type. diff --git a/gdb/stack.c b/gdb/stack.c index 014c274c74..fa5896395d 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -461,7 +461,7 @@ print_frame (struct frame_info *fi, stb = ui_out_stream_new (uiout); old_chain = make_cleanup_ui_out_stream_delete (stb); - func = find_pc_function (fi->pc); + func = find_pc_function (frame_address_in_block (fi)); if (func) { /* In certain pathological cases, the symtabs give the wrong @@ -480,7 +480,7 @@ print_frame (struct frame_info *fi, ever changed many parts of GDB will need to be changed (and we'll create a find_pc_minimal_function or some such). */ - struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc); + struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (frame_address_in_block (fi)); if (msymbol != NULL && (SYMBOL_VALUE_ADDRESS (msymbol) > BLOCK_START (SYMBOL_BLOCK_VALUE (func)))) @@ -528,7 +528,7 @@ print_frame (struct frame_info *fi, } else { - struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc); + struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (frame_address_in_block (fi)); if (msymbol != NULL) { funname = SYMBOL_NAME (msymbol); @@ -1111,7 +1111,7 @@ backtrace_command_1 (char *count_exp, int show_locals, int from_tty) fi = get_prev_frame (fi)) { QUIT; - ps = find_pc_psymtab (fi->pc); + ps = find_pc_psymtab (frame_address_in_block (fi)); if (ps) PSYMTAB_TO_SYMTAB (ps); /* Force syms to come in */ }