public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 6/7] Use canonicalize_file_name unconditionally
Date: Fri, 28 Nov 2014 03:43:00 -0000	[thread overview]
Message-ID: <20141128034300.GH5042@adacore.com> (raw)
In-Reply-To: <87r3woc9aw.fsf@codesourcery.com>

Hi Yao,

> > I guess one step at a time, but why not use canonicalize_file_name
> > on Windows hosts as well? My question is not necessarily to suggest
> > that we should be doing it, but rather whether you know of a reason
> > why we should not be doing it...
> 
> The code handling Windows host was added by your patch below
> 
>   [RFA/commit] Improve gdb_realpath for Windows hosts
>   https://sourceware.org/ml/gdb-patches/2011-12/msg00785.html
> 
> in order to handle a weird case that compiler produces some debug
> info where the path has double backslashes.  I am not sure gnulib
> realpath is able to handle such case, so I leave the code for Windows
> host there.

Arf! :-)

canonicalize_file_name does, as far as I can tell, collapse multiple
backslashes, but there is one critical difference between both
functions: GetFullPathName just performs the job mechanically
without checking that the path is at all valid, while
canonicalize_file_name requires the path to exist:

/* Return the canonical absolute name of file NAME.  A canonical name
   does not contain any ".", ".." components nor any repeated file name
   separators ('/') or symlinks.  All components must exist.
   The result is malloc'd.  */

Given how frequent it is for source files to be unavailable,
I would say that it would be useful to preserve the GetFullPathName
behavior for those files as well, and allow users to set breakpoints
without having to worry about how many backslashes GCC has been
using. Or said differently, I agree with your decision :-).

I am taking a note to:

  1. Add an extra comment to this part of the code once you've pushed
     your patch;

  2. Double-check what newer versions of GCC do. At some point, perhaps
     we can declare a minimum GCC version that we fully support and
     then mark this code area for possible removal if it ever starts
     causing extra work.

-- 
Joel

  reply	other threads:[~2014-11-28  3:43 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-26  5:46 [PATCH 0/7 V2] Import the rename gnulib module Yao Qi
2014-11-26  5:46 ` [PATCH 2/7] Use readlink unconditionally Yao Qi
2014-11-26  5:46 ` [PATCH 1/7] Import readlink Yao Qi
2014-12-03 10:48   ` Joel Brobecker
2014-12-03 12:08     ` [RFA] configure gdb/gnulib with --disable-largefile if largefile support disabled Joel Brobecker
2014-12-03 17:59       ` Eli Zaretskii
2014-12-04  3:18         ` Joel Brobecker
2014-12-04  6:47           ` Eli Zaretskii
2014-12-13 16:29             ` Joel Brobecker
2014-12-04  2:17       ` Yao Qi
2014-12-13 14:46         ` pushed: " Joel Brobecker
2014-11-26  5:47 ` [PATCH 6/7] Use canonicalize_file_name unconditionally Yao Qi
2014-11-27  7:36   ` Joel Brobecker
2014-11-28  3:07     ` Yao Qi
2014-11-28  3:43       ` Joel Brobecker [this message]
2014-11-28 10:43         ` Yao Qi
2014-11-28 14:46           ` Joel Brobecker
2014-11-26  5:47 ` [PATCH 7/7] Import rename module Yao Qi
2014-11-26  5:47 ` [PATCH 4/7] Use lstat unconditionally Yao Qi
2014-11-26  5:47 ` [PATCH 5/7] Import canonicalize-lgpl Yao Qi
2014-11-26  5:47 ` [PATCH 3/7] Import lstat Yao Qi
2014-12-02 17:01   ` Joel Brobecker
2014-12-03  9:48     ` [pushed] callback.h:struct host_callback_struct compilation error on Windows hosts Joel Brobecker
2014-12-04  1:09       ` Yao Qi
2014-12-04  5:42         ` Joel Brobecker
2014-11-26 15:40 ` [PATCH 0/7 V2] Import the rename gnulib module Eli Zaretskii
2014-11-27  3:48   ` Yao Qi
2014-11-27  7:41 ` 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=20141128034300.GH5042@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).