This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix .debug_macro NOBITS crash (PR 14494)


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]