aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/solib-aix.c8
-rw-r--r--gdb/solib-darwin.c2
-rw-r--r--gdb/symfile-mem.c14
4 files changed, 24 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9799e1e..85a016b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,17 @@
2020-05-20 Alan Modra <amodra@gmail.com>
+ PR 25993
+ * solib-darwin.c (darwin_bfd_open): Don't strdup pathname for
+ bfd_set_filename.
+ * solib-aix.c (solib_aix_bfd_open): Use std::string for name
+ passed to bfd_set_filename.
+ * symfile-mem.c (add_vsyscall_page): Likewise for string
+ passed to symbol_file_add_from_memory.
+ (symbol_file_add_from_memory): Make name param a const char* and
+ don't strdup.
+
+2020-05-20 Alan Modra <amodra@gmail.com>
+
* coff-pe-read.c (read_pe_exported_syms): Use bfd_get_filename
rather than accessing bfd->filename directly.
* dtrace-probe.c (dtrace_static_probe_ops::get_probes): Likewise,
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 5da1214..344c1f5 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -637,10 +637,10 @@ solib_aix_bfd_open (const char *pathname)
along with appended parenthesized member name in order to allow commands
listing all shared libraries to display. Otherwise, we would only be
displaying the name of the archive member object. */
- bfd_set_filename (object_bfd.get (),
- xstrprintf ("%s%s",
- bfd_get_filename (archive_bfd.get ()),
- sep));
+ std::string fname = string_printf ("%s%s",
+ bfd_get_filename (archive_bfd.get ()),
+ sep);
+ bfd_set_filename (object_bfd.get (), fname.c_str ());
return object_bfd;
}
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index e740a41..ee0483d 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -662,7 +662,7 @@ darwin_bfd_open (const char *pathname)
/* The current filename for fat-binary BFDs is a name generated
by BFD, usually a string containing the name of the architecture.
Reset its value to the actual filename. */
- bfd_set_filename (res.get (), xstrdup (pathname));
+ bfd_set_filename (res.get (), pathname);
return res;
}
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index e2d2e43..78096fc 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -78,11 +78,10 @@ target_read_memory_bfd (bfd_vma memaddr, bfd_byte *myaddr, bfd_size_type len)
and read its in-core symbols out of inferior memory. SIZE, if
non-zero, is the known size of the object. TEMPL is a bfd
representing the target's format. NAME is the name to use for this
- symbol file in messages; it can be NULL or a malloc-allocated string
- which will be attached to the BFD. */
+ symbol file in messages; it can be NULL. */
static struct objfile *
symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
- size_t size, char *name, int from_tty)
+ size_t size, const char *name, int from_tty)
{
struct objfile *objf;
struct bfd *nbfd;
@@ -102,7 +101,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
if (name == NULL)
- name = xstrdup ("shared object read from target memory");
+ name = "shared object read from target memory";
bfd_set_filename (nbfd, name);
if (!bfd_check_format (nbfd, bfd_object))
@@ -183,8 +182,9 @@ add_vsyscall_page (struct target_ops *target, int from_tty)
return;
}
- char *name = xstrprintf ("system-supplied DSO at %s",
- paddress (target_gdbarch (), vsyscall_range.start));
+ std::string name = string_printf ("system-supplied DSO at %s",
+ paddress (target_gdbarch (),
+ vsyscall_range.start));
try
{
/* Pass zero for FROM_TTY, because the action of loading the
@@ -193,7 +193,7 @@ add_vsyscall_page (struct target_ops *target, int from_tty)
symbol_file_add_from_memory (bfd,
vsyscall_range.start,
vsyscall_range.length,
- name,
+ name.c_str (),
0 /* from_tty */);
}
catch (const gdb_exception &ex)