This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/dwarf2] Small problem scanning line table for included files
- From: Joel Brobecker <brobecker at gnat dot com>
- To: Jim Blandy <jimb at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 30 Jul 2004 12:01:04 -0700
- Subject: Re: [RFA/dwarf2] Small problem scanning line table for included files
- References: <20040725151137.GT20596@gnat.com> <vt2oem0dksp.fsf@zenia.home>
Hello Jim,
Thanks for your careful review.
> This is getting a bit hairy.
I can't agree more. I was just fixated on having an exact fix, as
opposed to an approximate fix where we assume that the compiler is
not going to do anything meaningless.
> It would be simpler to simply delete the "!decode_for_pst_p && "
> towards the top of dwarf2_decode_lines, and always create a psymtab
> for the first file. This could conceivably result in creating
> psymtabs for source files that have no line number entries in them,
> but that's probably not going to be a big deal.
>
> (To be picky, we can make that mistake now anyway: consider what would
> happen if the line number program contained two consecutive
> DW_LNS_set_file instructions: the first file gets a psymtab, even
> though it's never used.)
>
> To get everything exactly right, we would need to delay setting a file
> table entry's included_p flag until just before we actually call
> record_line.
I think you are right. Looking for DW_LNS_set_file was a mistake, since
it is not fullproof as you demonstrated above. I looked at the dwarf3
(draft7) reference again, and setting that flag everytime we need to
record a line seems to be the perfect place to do (it's a bit
complicated to explain my resoning, I was concerned mostly because
I was a bit fuzzy on certain details which were cleared by rereding
the dwarf3 reference document).
I shall give this a try, and report back.
--
Joel