This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix .debug_macro NOBITS crash (PR 14494)
- From: Doug Evans <dje at google dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Sat, 18 Aug 2012 17:41:23 -0700
- Subject: Re: [patch] Fix .debug_macro NOBITS crash (PR 14494)
- References: <20120818165703.GA22955@host2.jankratochvil.net>
On Sat, Aug 18, 2012 at 9:57 AM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> [...]
> gdb/
> 2012-08-18 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
> Move the SEC_HAS_CONTENTS check here - for any NAMES use.
> (dwarf2_locate_sections) <eh_frame>: Move the variable and check from
> here.
>
> diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
> index 099b67a..da6e87a 100644
> --- a/gdb/dwarf2read.c
> +++ b/gdb/dwarf2read.c
> @@ -1710,13 +1710,18 @@ static void
> dwarf2_locate_sections (bfd *abfd, asection *sectp, void *vnames)
> {
> const struct dwarf2_debug_sections *names;
> + flagword aflag = bfd_get_section_flags (abfd, sectp);
>
> if (vnames == NULL)
> names = &dwarf2_elf_names;
> else
> names = (const struct dwarf2_debug_sections *) vnames;
>
> - if (section_is_p (sectp->name, &names->info))
> + if ((aflag & SEC_HAS_CONTENTS) == 0)
> + {
> + /* Such section is not usable for the purpose of NAMES. */
Hi.
Nit: "for the purpose of NAMES" doesn't read very well.
How about just "Such section is not usable." ?
After all, !SEC_HAS_CONTENTS, no further explanation is needed.
> + }
> + else if (section_is_p (sectp->name, &names->info))
> {
> dwarf2_per_objfile->info.asection = sectp;
> dwarf2_per_objfile->info.size = bfd_get_section_size (sectp);
> @@ -1763,13 +1768,8 @@ dwarf2_locate_sections (bfd *abfd, asection *sectp, void *vnames)
> }
> else if (section_is_p (sectp->name, &names->eh_frame))
> {
> - flagword aflag = bfd_get_section_flags (abfd, sectp);
> -
> - if (aflag & SEC_HAS_CONTENTS)
> - {
> - dwarf2_per_objfile->eh_frame.asection = sectp;
> - dwarf2_per_objfile->eh_frame.size = bfd_get_section_size (sectp);
> - }
> + dwarf2_per_objfile->eh_frame.asection = sectp;
> + dwarf2_per_objfile->eh_frame.size = bfd_get_section_size (sectp);
> }
> else if (section_is_p (sectp->name, &names->ranges))
> {
Ok with me with the suggested comment change.