diff options
author | Michael Snyder <msnyder@vmware.com> | 2002-04-12 23:09:48 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2002-04-12 23:09:48 +0000 |
commit | 20fe79c82c7b8d7898a20205b50a36c4b41cc938 (patch) | |
tree | 09e51d39aca40dcbfd9d2daa049f774e4fc92dbf /gdb/gcore.c | |
parent | 0c04d16993741c9fc30f283a302f1707d4a0cee9 (diff) | |
download | binutils-gdb-20fe79c82c7b8d7898a20205b50a36c4b41cc938.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.c | 19 |
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) |