summaryrefslogtreecommitdiff
path: root/gdb/gcore.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2002-04-12 23:09:48 +0000
committerMichael Snyder <msnyder@specifix.com>2002-04-12 23:09:48 +0000
commit81b23603153277deecc4956c4b664f3e57b870dc (patch)
tree1c9b46bb38cb3d32828a6c04711aacaf36945986 /gdb/gcore.c
parent0b54ec05ea8f3fd9e76b1bd5015ddd3ab7abe00b (diff)
downloadgdb-81b23603153277deecc4956c4b664f3e57b870dc.tar.gz
2002-04-12 Michael Snyder <msnyder@redhat.com>
* gcore.c (default_derive_heap_segment): Use bfd_section_name. If no symbol found for "sbrk", try "_sbrk". (make_output_phdrs): Use bfd_section_name. (gcore_copy_callback): Use bfd_section_name.
Diffstat (limited to 'gdb/gcore.c')
-rw-r--r--gdb/gcore.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gdb/gcore.c b/gdb/gcore.c
index 494efad4608..25d1ed70e24 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -269,7 +269,7 @@ default_derive_heap_segment (bfd *abfd, bfd_vma *bottom, bfd_vma *top)
for (sec = abfd->sections; sec; sec = sec->next)
{
if (bfd_get_section_flags (abfd, sec) & SEC_DATA ||
- strcmp (".bss", bfd_get_section_name (abfd, sec)) == 0)
+ strcmp (".bss", bfd_section_name (abfd, sec)) == 0)
{
sec_vaddr = bfd_get_section_vma (abfd, sec);
sec_size = bfd_get_section_size_before_reloc (sec);
@@ -278,8 +278,19 @@ default_derive_heap_segment (bfd *abfd, bfd_vma *bottom, bfd_vma *top)
}
}
/* Now get the top-of-heap by calling sbrk in the inferior. */
- if ((sbrk = find_function_in_inferior ("sbrk")) == NULL)
+ if (lookup_minimal_symbol ("sbrk", NULL, NULL) != NULL)
+ {
+ if ((sbrk = find_function_in_inferior ("sbrk")) == NULL)
+ return 0;
+ }
+ else if (lookup_minimal_symbol ("_sbrk", NULL, NULL) != NULL)
+ {
+ if ((sbrk = find_function_in_inferior ("_sbrk")) == NULL)
+ return 0;
+ }
+ else
return 0;
+
if ((zero = value_from_longest (builtin_type_int, (LONGEST) 0)) == NULL)
return 0;
if ((sbrk = call_function_by_hand (sbrk, 1, &zero)) == NULL)
@@ -314,7 +325,7 @@ make_output_phdrs (bfd *obfd, asection *osec, void *ignored)
int p_type;
/* FIXME: these constants may only be applicable for ELF. */
- if (strncmp (osec->name, "load", 4) == 0)
+ if (strncmp (bfd_section_name (obfd, osec), "load", 4) == 0)
p_type = PT_LOAD;
else
p_type = PT_NOTE;
@@ -452,7 +463,7 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
if (size == 0)
return; /* Read-only sections are marked as zero-size.
We don't have to copy their contents. */
- if (strncmp ("load", bfd_get_section_name (obfd, osec), 4) != 0)
+ if (strncmp ("load", bfd_section_name (obfd, osec), 4) != 0)
return; /* Only interested in "load" sections. */
if ((memhunk = xmalloc (size)) == NULL)