From: Daniel Jacobowitz <drow@false.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFC] fullname attribute for GDB/MI stack frames
Date: Wed, 04 May 2005 21:07:00 -0000 [thread overview]
Message-ID: <20050504210717.GA2419@nevyn.them.org> (raw)
In-Reply-To: <01c550eb$Blat.v2.4$24b1dce0@zahav.net.il>
On Wed, May 04, 2005 at 11:51:08PM +0300, Eli Zaretskii wrote:
> > Date: Wed, 4 May 2005 14:31:28 -0400
> > From: Daniel Jacobowitz <drow@false.org>
> > Cc: gdb-patches@sources.redhat.com
> >
> > If we're returning a fullname at all, we've decided where to open the
> > file; we can share that decision with the user/client.
>
> That is perhaps true for openp, but not for xfullpath or gdb_realpath:
> those functions don't open the file, they just manipulate the string
> that is handed to them.
I'm still just not following you. The value of those functions if they
can not find the file is _nil_. You can't resolve symlinks in a
directory path, for instance, if you can't find the directory.
realpath() returns ENOENT if you hand it a path that does not exist.
There are five calls to xfullpath in GDB. One is for debugging use
(maint print msymbols). Two are interested in canonicalizing
paths which already meet IS_ABSOLUTE_PATH, for the purposes of
comparison. And the last two are in openp, after successfully opening
the file.
There are six calls to gdb_realpath. One is QNX-specific and I'm not
precisely sure what it's for. Four are used on symtabs for string
comparison. And the last one is in the implementation of xfullpath.
> > The question is what a front end can expect from GDB. The
> > documentation says it can expect an absolute path, not a
> > semi-absolute path.
>
> If the front end is going to open the file, it doesn't matter. If it
> is going to compare files for equality, it should not use string
> comparison, for the reasons I explained in another message.
If it's going to open files, it _does_ matter. You said that the
current directory (and presumably the current drive) are global on this
platform. But the current directory is not stable across time. If the
front end changes the current directory after talking to GDB, suddenly
it won't be able to open files.
> Because it took me quite an effort to make GDB DTRT with MS-style file
> names. So I don't want to see it go down the drain because of some
> test case. The main reason for these functions is to handle files
> which GDB needs to work with, not to display standardized names. That
> is, the ultimate test is whether opening the file will work or not,
> not if they look canonical. Canonicalization is a means, not an end
> in itself, except in the test that started this. So I'm willing to
> give up on this test, but not on what the code does, because I don't
> want us to break much more important situations where the current code
> works.
Can you give me an example of when canonicalization would be harmful?
The only one I can think of is "the current directory was wrong when we
tried to open the file, so we change the current directory and things
start working". This relies on a DJGPP specific property; if you want
this behavior, the right way to do it is to make GDB re-resolve
filenames when its current directory changes.
--
Daniel Jacobowitz
CodeSourcery, LLC
next prev parent reply other threads:[~2005-05-04 21:07 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-01 19:13 Dennis Brueni
2005-04-02 9:22 ` Eli Zaretskii
2005-04-30 19:18 ` Daniel Jacobowitz
2005-05-01 2:19 ` Bob Rossi
2005-05-01 18:24 ` Eli Zaretskii
2005-05-01 18:34 ` Bob Rossi
2005-05-01 19:02 ` Daniel Jacobowitz
2005-05-02 0:55 ` Bob Rossi
2005-05-02 0:54 ` Bob Rossi
2005-05-02 0:58 ` Daniel Jacobowitz
2005-05-02 19:30 ` Eli Zaretskii
2005-05-02 19:36 ` Bob Rossi
2005-05-02 19:52 ` Eli Zaretskii
2005-05-02 19:55 ` Daniel Jacobowitz
2005-05-02 20:42 ` Eli Zaretskii
2005-05-02 20:49 ` Daniel Jacobowitz
2005-05-02 21:20 ` Bob Rossi
2005-05-03 3:49 ` Eli Zaretskii
2005-05-03 3:42 ` Eli Zaretskii
2005-05-03 3:46 ` Daniel Jacobowitz
2005-05-03 19:36 ` Eli Zaretskii
2005-05-03 19:49 ` Daniel Jacobowitz
2005-05-03 20:05 ` Bob Rossi
2005-05-03 20:49 ` Eli Zaretskii
2005-05-04 13:34 ` Daniel Jacobowitz
2005-05-04 13:51 ` Bob Rossi
2005-05-04 13:52 ` Daniel Jacobowitz
2005-05-04 17:51 ` Eli Zaretskii
2005-05-04 18:06 ` Bob Rossi
2005-05-04 20:32 ` Eli Zaretskii
2005-05-04 18:05 ` Eli Zaretskii
2005-05-04 18:32 ` Daniel Jacobowitz
2005-05-04 20:53 ` Eli Zaretskii
2005-05-04 21:07 ` Daniel Jacobowitz [this message]
2005-05-04 21:42 ` Eli Zaretskii
2005-05-04 22:01 ` Daniel Jacobowitz
2005-05-04 23:42 ` Christopher Faylor
2005-05-05 4:15 ` Eli Zaretskii
2005-05-04 23:40 ` Christopher Faylor
2005-05-05 0:05 ` Bob Rossi
2005-05-05 4:02 ` Eli Zaretskii
2005-05-04 23:37 ` Christopher Faylor
2005-05-05 4:05 ` Eli Zaretskii
2005-05-03 19:57 ` Bob Rossi
2005-05-03 21:15 ` Eli Zaretskii
2005-05-03 21:39 ` Christopher Faylor
2005-05-03 22:24 ` Daniel Jacobowitz
2005-05-03 22:27 ` Christopher Faylor
2005-05-04 2:32 ` Bob Rossi
2005-05-04 3:05 ` Christopher Faylor
2005-05-04 17:42 ` Eli Zaretskii
2005-05-04 4:12 ` Eli Zaretskii
2005-05-04 13:00 ` Daniel Jacobowitz
2005-05-04 4:27 ` Eli Zaretskii
2005-05-04 11:48 ` Bob Rossi
2005-05-04 14:55 ` Christopher Faylor
2005-05-04 15:02 ` Bob Rossi
2005-05-04 17:43 ` Eli Zaretskii
2005-05-04 17:58 ` Christopher Faylor
2005-05-04 18:29 ` Eli Zaretskii
2005-05-04 20:39 ` Eli Zaretskii
2005-05-04 23:34 ` Christopher Faylor
2005-05-05 4:08 ` Eli Zaretskii
2005-05-04 13:45 ` Daniel Jacobowitz
2005-05-04 20:20 ` Eli Zaretskii
2005-05-04 20:30 ` Daniel Jacobowitz
2005-05-04 21:24 ` Eli Zaretskii
2005-05-04 14:52 ` Christopher Faylor
2005-05-04 17:48 ` Eli Zaretskii
2005-05-04 18:03 ` Christopher Faylor
2005-05-04 18:26 ` Eli Zaretskii
2005-05-03 21:39 ` Bob Rossi
2005-05-03 22:14 ` Christopher Faylor
2005-05-04 4:08 ` Eli Zaretskii
2005-05-04 13:39 ` Daniel Jacobowitz
2005-05-04 17:49 ` Eli Zaretskii
2005-05-04 4:18 ` Eli Zaretskii
2005-05-03 22:50 ` Bob Rossi
2005-05-04 4:04 ` Eli Zaretskii
2005-05-05 17:20 ` Bob Rossi
2005-05-05 18:04 ` Eli Zaretskii
2005-05-05 19:18 ` Christopher Faylor
2005-05-05 23:53 ` Bob Rossi
2005-05-05 16:22 ` Bob Rossi
2005-05-05 16:26 ` Daniel Jacobowitz
2005-05-05 16:46 ` Bob Rossi
2005-05-05 17:17 ` Daniel Jacobowitz
2005-05-18 4:44 ` Daniel Jacobowitz
-- strict thread matches above, loose matches on Subject: below --
2005-05-05 15:15 Dennis Brueni
2005-05-05 15:25 ` Bob Rossi
2005-05-05 15:28 ` Daniel Jacobowitz
2005-05-05 15:32 ` Bob Rossi
2005-05-02 14:22 Dennis Brueni
2005-05-02 19:38 ` Eli Zaretskii
2005-04-01 15:09 Dennis Brueni
2005-03-29 20:43 Dennis Brueni
2005-03-30 4:46 ` Eli Zaretskii
2005-04-01 1:41 ` Bob Rossi
2005-03-26 13:43 Eli Zaretskii
2005-03-26 13:50 ` Bob Rossi
2005-03-24 20:49 Dennis Brueni
2005-03-23 22:22 Dennis Brueni
2005-03-23 22:34 ` Bob Rossi
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=20050504210717.GA2419@nevyn.them.org \
--to=drow@false.org \
--cc=eliz@gnu.org \
--cc=gdb-patches@sources.redhat.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