aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2015-04-27 11:46:13 +0100
committerGary Benson <gbenson@redhat.com>2015-04-27 15:39:46 +0100
commit5fbae7d108f4b885228cc657449905543c42c85a (patch)
tree1f9b4e967858d83dd338bc5d26ed3db268306fd6
parent180d40b903774d6c7bd8110ce4f77a2f5fb06e7a (diff)
downloadgdb-5fbae7d108f4b885228cc657449905543c42c85a.zip
gdb-5fbae7d108f4b885228cc657449905543c42c85a.tar.gz
gdb-5fbae7d108f4b885228cc657449905543c42c85a.tar.bz2
Do not manipulate "target:" filenames as local paths
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.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/auto-load.c7
-rw-r--r--gdb/objfiles.c3
3 files changed, 14 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index faa65f8..4e29252 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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".
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);