33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
|
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
|
||
|
From: Andrew Cagney <cagney@gnu.org>
|
||
|
Date: Fri, 27 Oct 2017 21:07:50 +0200
|
||
|
Subject: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||
|
|
||
|
;; Include the pc's section when doing a symbol lookup so that the
|
||
|
;; correct symbol is found.
|
||
|
;;=push: Write new testcase.
|
||
|
|
||
|
2004-11-24 Andrew Cagney <cagney@gnu.org>
|
||
|
|
||
|
* printcmd.c (build_address_symbolic): Find a section for the
|
||
|
address.
|
||
|
|
||
|
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
|
||
|
--- a/gdb/printcmd.c
|
||
|
+++ b/gdb/printcmd.c
|
||
|
@@ -587,6 +587,14 @@ build_address_symbolic (struct gdbarch *gdbarch,
|
||
|
addr = overlay_mapped_address (addr, section);
|
||
|
}
|
||
|
}
|
||
|
+ /* To ensure that the symbol returned belongs to the correct setion
|
||
|
+ (and that the last [random] symbol from the previous section
|
||
|
+ isn't returned) try to find the section containing PC. First try
|
||
|
+ the overlay code (which by default returns NULL); and second try
|
||
|
+ the normal section code (which almost always succeeds). */
|
||
|
+ section = find_pc_overlay (addr);
|
||
|
+ if (section == NULL)
|
||
|
+ section = find_pc_section (addr);
|
||
|
|
||
|
/* First try to find the address in the symbol table, then
|
||
|
in the minsyms. Take the closest one. */
|