diff options
author | Gary Benson <gbenson@redhat.com> | 2015-04-28 12:21:32 +0100 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2015-04-28 12:21:32 +0100 |
commit | ff862be47e7acf51e4abaf0f121d5961adb1845a (patch) | |
tree | 27a64c2e92dc0972a76fd477fc6d430f03c319a0 | |
parent | da7119c99c41f60cb178b0b9729d9f7880f33c86 (diff) | |
download | gdb-ff862be47e7acf51e4abaf0f121d5961adb1845a.zip gdb-ff862be47e7acf51e4abaf0f121d5961adb1845a.tar.gz gdb-ff862be47e7acf51e4abaf0f121d5961adb1845a.tar.bz2 |
Use exec_file_find to prepend gdb_sysroot in follow_exec
This commit updates follow_exec to use exec_file_find to prefix
the new executable's filename with gdb_sysroot rather than doing
it longhand.
gdb/ChangeLog:
* infrun.c (solist.h): New include.
(follow_exec): Use exec_file_find to prefix execd_pathname
with gdb_sysroot.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/infrun.c | 18 |
2 files changed, 17 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d833876..a22b7f8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-04-28 Gary Benson <gbenson@redhat.com> + + * infrun.c (solist.h): New include. + (follow_exec): Use exec_file_find to prefix execd_pathname + with gdb_sysroot. + 2015-04-28 Patrick Palka <patrick@parcs.ath.cx> * tui/tui-source.c (tui_set_source_content): Avoid calling diff --git a/gdb/infrun.c b/gdb/infrun.c index 7870f70..f09e2da 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -60,6 +60,7 @@ #include "target-descriptions.h" #include "target-dcache.h" #include "terminal.h" +#include "solist.h" /* Prototypes for local functions */ @@ -1133,15 +1134,18 @@ follow_exec (ptid_t ptid, char *execd_pathname) breakpoint_init_inferior (inf_execd); - if (gdb_sysroot && *gdb_sysroot) + if (gdb_sysroot != NULL && *gdb_sysroot != '\0') { - char *name = alloca (strlen (gdb_sysroot) - + strlen (execd_pathname) - + 1); + int fd = -1; + char *name; - strcpy (name, gdb_sysroot); - strcat (name, execd_pathname); - execd_pathname = name; + name = exec_file_find (execd_pathname, &fd); + if (fd >= 0) + close (fd); + + execd_pathname = alloca (strlen (name) + 1); + strcpy (execd_pathname, name); + xfree (name); } /* Reset the shared library package. This ensures that we get a |