Re: [PATCH 2/7] Handle Windows drives in auto-load script paths

Christian Biesinger
2020-05-26T16:05:56Z

On Mon, May 25, 2020 at 1:57 PM Hannes Domani via Gdb-patches
<gdb-patches@sourceware.org> wrote:
>
> Fixes this testsuite fail on Windows:
> FAIL: gdb.base/auto-load.exp: print $script_loaded
>
> Converts the debugfile path from c:/dir/file to /c/dir/file, so it can be
> appended to the auto-load path.

How does this work? I thought /c/foo was not supported by either
cygwin or mingw?

Christian

> gdb/ChangeLog:
>
> 2020-05-25 Hannes Domani <ssbssa@yahoo.de>
>
> * auto-load.c (auto_load_objfile_script_1): Convert drive part
> of debugfile path on Windows.
> ---
> gdb/auto-load.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/gdb/auto-load.c b/gdb/auto-load.c
> index 99bd96b971..88221d9f3d 100644
> --- a/gdb/auto-load.c
> +++ b/gdb/auto-load.c
> @@ -784,6 +784,13 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname,
> "scripts-directory' path \"%s\".\n"),
> auto_load_dir);
>
> + /* Convert Windows debugfile path from c:/dir/file to /c/dir/file. */
> + if (HAS_DRIVE_SPEC (debugfile))
> + {
> + debugfile_holder = STRIP_DRIVE_SPEC (debugfile);
> + filename = std::string("/") + debugfile[0] + debugfile_holder;
> + }
> +
> for (const gdb::unique_xmalloc_ptr<char> &dir : vec)
> {
> /* FILENAME is absolute, so we don't need a "/" here. */
> --
> 2.26.2
>