From ff862be47e7acf51e4abaf0f121d5961adb1845a Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 28 Apr 2015 12:21:32 +0100 Subject: [PATCH] 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. --- gdb/ChangeLog | 6 ++++++ 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 + + * infrun.c (solist.h): New include. + (follow_exec): Use exec_file_find to prefix execd_pathname + with gdb_sysroot. + 2015-04-28 Patrick Palka * 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 -- 2.7.4