Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Christophe LYON <christophe.lyon@st.com>
To: Robert Bu <robert.bu@gmail.com>
Cc: gdb@sourceware.org
Subject: Re: GDB cannot find line info
Date: Mon, 21 Sep 2009 15:35:00 -0000	[thread overview]
Message-ID: <4AB79D3E.8060806@st.com> (raw)
In-Reply-To: <4AB79510.5000909@st.com>

I have investigated a bit more, and the GDB patch actually seems to 
match perfectly my compiler behavior... maybe it was designed for 
another port of Open64 ;-)

For the record, debug_line describes only the source file basename + 
reference to the full path, while debug_info uses the full path name.

Hence, the same basename appears twice in GDB line table, but one of the 
entries has an empty line table (the one from debug_info).

Thanks for your help!

Christophe.


On 21.09.2009 17:00, Christophe LYON wrote:
> Hi Robert,
> 
> Thanks for the suggestion, indeed it has fixed my problem, though I 
> don't really understand why :-)
> 
> I tried Joel's suggestion, and indeed the line table is empty.
> I have tried comparing the output of "maintenance print symbols" between 
>  executable files generated by 2 compilers (on break.c from the 
> testsuite), and:
> * with the compiler with the bug (incorrect source directory), Symtab 
> for break.c appears once, with a line table
> * with the compiler with my fix, Symtab for break.c appears twice, once 
> with only "break.c" and no line table, and once with the full path to 
> "break.c" and the right line table.
> 
> Christophe.
> 
> 
> On 21.09.2009 09:45, Robert Bu wrote:
>> Hi Christophe,
>>
>> Maybe you can try the CVS head or the 7.0 preview. I've once met the
>> same problem. And the problem is gone in CVS. Actually the problem is
>> fixed by the newly added function "watch_main_source_file_lossage
>> (void)" in buildsym.c
>>
>> Robert.
>>
>>>
>>> Hello,
>>>
>>> I have found a bug in our compiler (Open64 for ST200), which I have
>>> fixed to make it correctly output the directory table related to
>>> debug_line info.
>>> But now, I have many regressions in the GDB testsuite (6.8), the first
>>> one being in break.exp: now the command "break break.c:103" returns
>>> 'No line 103 in file "break.c"'
>>>
>>> I have dumped the dwarf debug_line info with 'dwarfdump -l' and
>>> 'readelf -wl', but could not find anything suspect:
>>> - with dwarfdump, the only difference is in the directory path
>>> - with readelf, the directory tables contain one more entry (absolute
>>> path to gdb.base) and the file table has dir numbers updated
>>> accordingly. (obviously, the length and offset of the corresponding
>>> sections are different)
>>>
>>> Is there any GDB internal command I could use to understand the problem?
>>>
>>> Thanks,
>>>
>>> Christophe.
>>>
>>
> 
> 


  reply	other threads:[~2009-09-21 15:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-21  7:45 Robert Bu
2009-09-21 15:00 ` Christophe LYON
2009-09-21 15:35   ` Christophe LYON [this message]
2009-09-22 16:04     ` Christophe LYON
2009-09-25 15:37       ` Christophe LYON
  -- strict thread matches above, loose matches on Subject: below --
2009-09-18 16:12 Christophe LYON
2009-09-18 16:27 ` Frédéric RISS
2009-09-18 16:33   ` Frederic Riss
2009-09-19 16:40 ` Joel Brobecker

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=4AB79D3E.8060806@st.com \
    --to=christophe.lyon@st.com \
    --cc=gdb@sourceware.org \
    --cc=robert.bu@gmail.com \
    /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