Do not manipulate "target:" filenames as local paths
authorGary Benson <gbenson@redhat.com>
Mon, 27 Apr 2015 10:46:13 +0000 (11:46 +0100)
committerGary Benson <gbenson@redhat.com>
Mon, 27 Apr 2015 14:39:46 +0000 (15:39 +0100)
This commit 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.

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
gdb/auto-load.c
gdb/objfiles.c

index faa65f851ddc10f772559b79e45a3ad08056ea26..4e292524a9fcef97a7ff27fa114440fb861682f1 100644 (file)
@@ -1,3 +1,10 @@
+2015-04-27  Gary Benson <gbenson@redhat.com>
+
+       * 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.
+
 2015-04-27  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * s390-linux-tdep.c: Include "elf/s390.h" and "elf-bfd.h".
index 778eeb6bb2b2a2fa0116f3c5b7e4e9b697a319c4..7da288ffe7905c171cb72119e2996c141374897f 100644 (file)
@@ -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.
index ff20bc8fcffdef56c36451c77f6cfe3727e2e395..c6f9f001a3c687658b711eb751344e2f22719996 100644 (file)
@@ -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);