public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: "Potharla, Rupesh" <Rupesh.Potharla@amd.com>,
	"Potharla, Rupesh via Binutils" <binutils@sourceware.org>
Cc: "George, Jini Susan" <JiniSusan.George@amd.com>,
	"Parasuraman, Hariharan" <Hariharan.Parasuraman@amd.com>,
	"Natarajan, Kavitha" <Kavitha.Natarajan@amd.com>
Subject: Re: [PATCH] bfd: Fix issues with files in debug_line table with dwarf5.
Date: Wed, 18 May 2022 14:36:45 +0200	[thread overview]
Message-ID: <c96d5d20-10f3-8579-727e-10eebc1f0cb2@suse.com> (raw)
In-Reply-To: <DM6PR12MB42190B91F7A2C38399EB2504E7C69@DM6PR12MB4219.namprd12.prod.outlook.com>

On 09.05.2022 09:03, Potharla, Rupesh via Binutils wrote:
> [Public]
> 
> 
> 
> While working on the implementation of DW_FORM_strx forms could not print file names even after the implementation of strx forms. I found an issue with adding the file names to the file table with dwarf5 and clang.
> 
> With dwarf5 debug line version the file index is starting with zero, but the code is expecting it to be 1 which is the case with other dwarf versions.
> 
> From the contents of .debug_line compiled with clang and dwarf5, the file names array index is starting with zero.
> 
> standard_opcode_lengths[DW_LNS_set_isa] = 1
> include_directories[  0] = "/home/rupesh/addr2line"
> file_names[  0]:
>            name: "prog1.c"
>       dir_index: 0
>    md5_checksum: da4ea4c312af96d39b13557acdf23f05
> 
> Address            Line   Column File   ISA Discriminator Flags
> ------------------ ------ ------ ------ --- ------------- -------------
> 
> 
> The below line skipping zero entry was added as part of commit 19d80e5fec548e681c453d15b4ae5b49bc080acc is ignoring the file names in the zeroth index. I have no idea why this line was added. Removing the line is working for programs compiled with clang using dwarf5. With my fix, I am not seeing any issues with GCC and dwarf5 moreover currently GCC's debug_line version is 3 even when compiled with dwarf5.
> 
>       /* Skip the first "zero entry", which is the compilation dir/file.  */
>       if (datai != 0)
>         if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
>           return false;
> 
> Made code changes to fix this issue. Can you review the code changes and send in your comments/suggestions?
> 
> Regards,
> Rupesh P

Much of the above wants to go ...

> From 28e92539dfe5319e7bdfea32c4ee46f55ff51053 Mon Sep 17 00:00:00 2001
> From: rupothar rupesh.potharla@amd.com<mailto:rupesh.potharla@amd.com>
> Date: Mon, 9 May 2022 12:10:48 +0530
> Subject: [PATCH] bfd: Fix issues with files in debug_line table with dwarf5.
> 
> ---

... above this marker, to become the actual commit message.

> @@ -2270,10 +2273,8 @@ read_formatted_entries (struct comp_unit *unit, bfd_byte **bufp,
>              }
>          }
> 
> -      /* Skip the first "zero entry", which is the compilation dir/file.  */
> -      if (datai != 0)
> -         if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
> -           return false;
> +      if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
> +        return false;
>      }

How come this change doesn't add a version check?

To help being certain this is the right way of changing things, can you please
add up to two testcases (readelf and/or objdump), one for a version < 5 (unless
one such already exists and hence it would be visible there that you don't
unduly alter handling of those older versions) and one for version 5?

Jan


  reply	other threads:[~2022-05-18 12:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-09  7:03 Potharla, Rupesh
2022-05-18 12:36 ` Jan Beulich [this message]
2022-05-25  4:20   ` Potharla, Rupesh
2022-05-25  6:18     ` Jan Beulich
2022-05-31 18:07       ` Potharla, Rupesh
2022-07-05  5:05         ` Potharla, Rupesh
2022-07-05  6:06           ` Jan Beulich
2022-07-05  6:46 Potharla, Rupesh
2022-07-20  5:03 ` Potharla, Rupesh
2022-07-20  7:59   ` Jan Beulich
2022-07-25 14:30 ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c96d5d20-10f3-8579-727e-10eebc1f0cb2@suse.com \
    --to=jbeulich@suse.com \
    --cc=Hariharan.Parasuraman@amd.com \
    --cc=JiniSusan.George@amd.com \
    --cc=Kavitha.Natarajan@amd.com \
    --cc=Rupesh.Potharla@amd.com \
    --cc=binutils@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).