diff options
author | Tom Tromey <tromey@redhat.com> | 2013-04-08 19:59:09 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-04-08 19:59:09 +0000 |
commit | 7cbd4a934e9cf3808e1199c62e65b4c25b24b4e5 (patch) | |
tree | f43a0ccccead27184646d90998d0054410abd6e3 /gdb/stack.c | |
parent | f85f34ede85d0c306e689736c6694caa2f0a0f78 (diff) | |
download | gdb-7cbd4a934e9cf3808e1199c62e65b4c25b24b4e5.zip gdb-7cbd4a934e9cf3808e1199c62e65b4c25b24b4e5.tar.gz gdb-7cbd4a934e9cf3808e1199c62e65b4c25b24b4e5.tar.bz2 |
* minsyms.h (struct bound_minimal_symbol): New.
(lookup_minimal_symbol_and_objfile): Return bound_minimal_symbol.
Remove objfile argument.
(lookup_minimal_symbol_by_pc_section, lookup_minimal_symbol_by_pc):
Return bound_minimal_symbol.
* minsyms.c (lookup_minimal_symbol_by_pc_1)
(lookup_minimal_symbol_by_pc_section, lookup_minimal_symbol_by_pc):
Return bound_minimal_symbol.
(in_gnu_ifunc_stub): Update.
(lookup_minimal_symbol_and_objfile): Return bound_minimal_symbol.
Remove 'objfile_p' argument.
(lookup_solib_trampoline_symbol_by_pc): Update.
* ada-tasks.c, amd64-windows-tdep.c, arm-tdep.c,
arm-wince-tdep.c, block.c, blockframe.c, breakpoint.c, btrace.c,
c-valprint.c, dwarf2loc.c, elfread.c, frame.c, frv-tdep.c,
glibc-tdep.c, gnu-v2-abi.c, gnu-v3-abi.c, hppa-hpux-tdep.c,
i386-tdep.c, ia64-tdep.c, infcall.c, infcmd.c, jit.c,
linux-fork.c, m32c-tdep.c, m68hc11-tdep.c, maint.c,
mips-tdep.c, p-valprint.c, parse.c, ppc-linux-tdep.c,
ppc-sysv-tdep.c, printcmd.c, rs6000-tdep.c, sh64-tdep.c,
stack.c, symtab.c, tui/tui-disasm.c: Update.
Diffstat (limited to 'gdb/stack.c')
-rw-r--r-- | gdb/stack.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/gdb/stack.c b/gdb/stack.c index 9ac3123..c072a2e 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -1037,23 +1037,25 @@ find_frame_funname (struct frame_info *frame, const char **funname, changed (and we'll create a find_pc_minimal_function or some such). */ - struct minimal_symbol *msymbol = NULL; + struct bound_minimal_symbol msymbol; /* Don't attempt to do this for inlined functions, which do not have a corresponding minimal symbol. */ if (!block_inlined_p (SYMBOL_BLOCK_VALUE (func))) msymbol = lookup_minimal_symbol_by_pc (get_frame_address_in_block (frame)); + else + memset (&msymbol, 0, sizeof (msymbol)); - if (msymbol != NULL - && (SYMBOL_VALUE_ADDRESS (msymbol) + if (msymbol.minsym != NULL + && (SYMBOL_VALUE_ADDRESS (msymbol.minsym) > BLOCK_START (SYMBOL_BLOCK_VALUE (func)))) { /* We also don't know anything about the function besides its address and name. */ func = 0; - *funname = SYMBOL_PRINT_NAME (msymbol); - *funlang = SYMBOL_LANGUAGE (msymbol); + *funname = SYMBOL_PRINT_NAME (msymbol.minsym); + *funlang = SYMBOL_LANGUAGE (msymbol.minsym); } else { @@ -1080,17 +1082,17 @@ find_frame_funname (struct frame_info *frame, const char **funname, } else { - struct minimal_symbol *msymbol; + struct bound_minimal_symbol msymbol; CORE_ADDR pc; if (!get_frame_address_in_block_if_available (frame, &pc)) return; msymbol = lookup_minimal_symbol_by_pc (pc); - if (msymbol != NULL) + if (msymbol.minsym != NULL) { - *funname = SYMBOL_PRINT_NAME (msymbol); - *funlang = SYMBOL_LANGUAGE (msymbol); + *funname = SYMBOL_PRINT_NAME (msymbol.minsym); + *funlang = SYMBOL_LANGUAGE (msymbol.minsym); } } } @@ -1424,13 +1426,13 @@ frame_info (char *addr_exp, int from_tty) } else if (frame_pc_p) { - struct minimal_symbol *msymbol; + struct bound_minimal_symbol msymbol; msymbol = lookup_minimal_symbol_by_pc (frame_pc); - if (msymbol != NULL) + if (msymbol.minsym != NULL) { - funname = SYMBOL_PRINT_NAME (msymbol); - funlang = SYMBOL_LANGUAGE (msymbol); + funname = SYMBOL_PRINT_NAME (msymbol.minsym); + funlang = SYMBOL_LANGUAGE (msymbol.minsym); } } calling_frame_info = get_prev_frame (fi); |