From: Aleksandar Ristovski <ARistovski@qnx.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: dje@google.com, gdb-patches@sourceware.org
Subject: RE: [RFA] patch for DW_AT_comp_dir/DW_AT_name vs .debug_line inco nsistencies
Date: Tue, 08 Jan 2008 16:34:00 -0000 [thread overview]
Message-ID: <2F6320727174C448A52CEB63D85D11F40A62@nova.ott.qnx.com> (raw)
> -----Original Message-----
> From: Daniel Jacobowitz [mailto:drow@false.org]
> Sent: January 8, 2008 11:19 AM
> To: Aleksandar Ristovski
> Cc: dje@google.com; gdb-patches@sourceware.org
> Subject: Re: [RFA] patch for DW_AT_comp_dir/DW_AT_name vs .debug_line inco
> nsistencies
>
> On Tue, Jan 08, 2008 at 11:09:18AM -0500, Aleksandar Ristovski wrote:
> > b) Symlinks involved:
> > b1) Then I tried to make a symlink to another location:
> > ln -s /tmp /foo/bar/obj
> > Make /foo/bar/obj my work dir and try:
> > gcc ../main.cc
> > It fails to find it (and rightfully so).
> > The only way I could build it is by using the absolute names.
> > gcc -c -g /foo/bar/main.cc -o main.o
> > now DW_AT_comp_dir is not specified and all paths are absolute (so no
> > problems there).
>
> No, try:
>
> mkdir -p /foo/bar/real-obj/obj
> touch /foo/bar/real-obj/main.c
> rm /foo/bar/obj
> ln -s /foo/bar/real-obj/obj /foo/bar/obj
> cd /foo/bar/obj
> gcc ../main.c
>
> The path "/foo/bar/obj/../main.c" is valid. The path
> "/foo/bar/main.c" is not.
I recreated your case.
My physical path:
My compiler generated this:
DW_AT_name : ../main.cc>~~~~$
DW_AT_comp_dir : /foo/bar/obj>~~~~
(note how it stored symlink in comp_dir)
The Directory Table:$
..$
$
The File Name Table:$
Entry>Dir>~~~~Time>~~~Size>~~~Name$
1>~~~~1>~~~~~~0>~~~~~~0>~~~~~~main.cc$
I still don't see the issue. The mere fact that my /foo/bar/main.cc does not
really live there but rather in /foo/bar/real-obj doesn't make any
difference for resolving debug_info and debug_line information. Gcc thought
it was there, that should be good enough for gdb.
>
> I think we should not implement this unless we have a real-world
> example where it would be necessary. It would require a version of
> the compiler which outputs different paths in .debug_info and
> .debug_line for the same file (which is a bug in the compiler, in my
> opinion!), a Makefile using ".." to find source files, and a source
> file including another file with the same basename.
The above is a real-world example. Note that we are not trying to solve
issue of the same file stored by two different paths in debug_info and
debug_line (that indeed would be a gcc bug) but rather to resolve the issue
of the same file stored with the same path spelled differently.
Thanks,
Aleksandar
QNX Software Systems
next reply other threads:[~2008-01-08 16:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-08 16:34 Aleksandar Ristovski [this message]
2008-01-08 16:46 ` Daniel Jacobowitz
-- strict thread matches above, loose matches on Subject: below --
2008-04-09 14:55 Aleksandar Ristovski
2008-04-09 20:52 ` Doug Evans
2008-04-08 16:37 Aleksandar Ristovski
2008-01-08 21:51 Aleksandar Ristovski
2008-01-08 21:57 ` Daniel Jacobowitz
2008-01-08 21:26 Aleksandar Ristovski
2008-01-08 21:24 Aleksandar Ristovski
2008-01-08 21:32 ` Daniel Jacobowitz
2008-01-08 20:28 Aleksandar Ristovski
2008-01-08 20:33 ` Daniel Jacobowitz
2008-01-08 16:10 Aleksandar Ristovski
2008-01-08 16:19 ` Daniel Jacobowitz
2008-01-08 17:33 ` Doug Evans
2008-01-06 6:44 Aleksandar Ristovski
2008-01-06 18:44 ` Doug Evans
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=2F6320727174C448A52CEB63D85D11F40A62@nova.ott.qnx.com \
--to=aristovski@qnx.com \
--cc=dje@google.com \
--cc=drow@false.org \
--cc=gdb-patches@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