summaryrefslogtreecommitdiff
path: root/bfd/syms.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2007-09-21 07:58:03 +0000
committerNick Clifton <nickc@redhat.com>2007-09-21 07:58:03 +0000
commit6119d2522e8a598e50cb2ed05bf523e0ecedad3f (patch)
tree3564ca5bb09a8712a115b5cc992eb68d6af57406 /bfd/syms.c
parent80576242ab144a06ef28d698a432eea831fdc5c0 (diff)
* syms.c (_bfd_stab_section_find_nearest_line): Look at the
specific SOM sections for stabs if the regular ones are not found. * som.h (struct somdata): Add a line_info field, to be used by som_find_nearest_line. * som.c (som_find_nearest_line): Implement using the bfd stabs function above.
Diffstat (limited to 'bfd/syms.c')
-rw-r--r--bfd/syms.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/bfd/syms.c b/bfd/syms.c
index 9d425684d9..8831b9257c 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -989,10 +989,17 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
if (info->stabsec == NULL || info->strsec == NULL)
{
- /* No stabs debugging information. Set *pinfo so that we
- can return quickly in the info != NULL case above. */
- *pinfo = info;
- return TRUE;
+ /* Try SOM section names. */
+ info->stabsec = bfd_get_section_by_name (abfd, "$GDB_SYMBOLS$");
+ info->strsec = bfd_get_section_by_name (abfd, "$GDB_STRINGS$");
+
+ if (info->stabsec == NULL || info->strsec == NULL)
+ {
+ /* No stabs debugging information. Set *pinfo so that we
+ can return quickly in the info != NULL case above. */
+ *pinfo = info;
+ return TRUE;
+ }
}
stabsize = (info->stabsec->rawsize