This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PING][PATCH v2] Do not manipulate "target:" filenames as local paths
- From: Gary Benson <gbenson at redhat dot com>
- To: gdb-patches at sourceware dot org
- Cc: Doug Evans <dje at google dot com>
- Date: Thu, 23 Apr 2015 22:22:14 +0100
- Subject: [PING][PATCH v2] Do not manipulate "target:" filenames as local paths
- Authentication-results: sourceware.org; auth=none
- References: <20150414114129 dot GB4660 at blade dot nx> <1429085001-25894-1-git-send-email-gbenson at redhat dot com>
Ping:
https://sourceware.org/ml/gdb-patches/2015-04/msg00547.html
Gary Benson wrote:
> Hi all,
>
> This patch alters two places that manipulate object file filenames
> to detect "target:" filenames and to not attempt to manipulate them
> as paths on the local filesystem:
>
> - allocate_objfile is updated to not attempt to expand "target:"
> filenames with gdb_abspath.
>
> - load_auto_scripts_for_objfile is updated to not attempt to load
> auto-load scripts for object files with "target:" filenames.
>
> Built and regtested on RHEL6.6 x86_64.
>
> Ok to commit?
>
> Cheers,
> Gary
>
>
> gdb/ChangeLog:
>
> * objfiles.c (allocate_objfile): Do not attempt to expand name
> if name is a "target:" filename.
> * auto-load.c (load_auto_scripts_for_objfile): Do not attempt
> to load auto-load scripts for objfiles with "target:" filenames.
> ---
> gdb/ChangeLog | 7 +++++++
> gdb/auto-load.c | 7 +++++--
> gdb/objfiles.c | 3 ++-
> 3 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/gdb/auto-load.c b/gdb/auto-load.c
> index 778eeb6..7da288f 100644
> --- a/gdb/auto-load.c
> +++ b/gdb/auto-load.c
> @@ -1195,8 +1195,11 @@ load_auto_scripts_for_objfile (struct objfile *objfile)
> {
> /* Return immediately if auto-loading has been globally disabled.
> This is to handle sequencing of operations during gdb startup.
> - Also return immediately if OBJFILE is not actually a file. */
> - if (!global_auto_load || (objfile->flags & OBJF_NOT_FILENAME) != 0)
> + Also return immediately if OBJFILE was not created from a file
> + on the local filesystem. */
> + if (!global_auto_load
> + || (objfile->flags & OBJF_NOT_FILENAME) != 0
> + || is_target_filename (objfile->original_name))
> return;
>
> /* Load any extension language scripts for this objfile.
> diff --git a/gdb/objfiles.c b/gdb/objfiles.c
> index ff20bc8..c6f9f00 100644
> --- a/gdb/objfiles.c
> +++ b/gdb/objfiles.c
> @@ -301,7 +301,8 @@ allocate_objfile (bfd *abfd, const char *name, int flags)
> gdb_assert ((flags & OBJF_NOT_FILENAME) != 0);
> expanded_name = xstrdup ("<<anonymous objfile>>");
> }
> - else if ((flags & OBJF_NOT_FILENAME) != 0)
> + else if ((flags & OBJF_NOT_FILENAME) != 0
> + || is_target_filename (name))
> expanded_name = xstrdup (name);
> else
> expanded_name = gdb_abspath (name);
> --
> 1.7.1
>
--
http://gbenson.net/