diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 23503ae515..3ec0d95d88 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-01-02 Andrey Utkin + + * symfile.c (find_separate_debug_file): Fix search of debug files for + remote debuggee. + 2019-01-02 Tom Tromey * python/py-inferior.c (gdbpy_initialize_inferior): Fix diff --git a/gdb/symfile.c b/gdb/symfile.c index 259b27269d..8858098f48 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1433,14 +1433,17 @@ find_separate_debug_file (const char *dir, Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/..." lookups. */ + bool target_prefix = startswith (dir, "target:"); + const char *dir_notarget = target_prefix ? dir + strlen ("target:") : dir; std::vector> debugdir_vec = dirnames_to_char_ptr_vec (debug_file_directory); for (const gdb::unique_xmalloc_ptr &debugdir : debugdir_vec) { - debugfile = debugdir.get (); + debugfile = target_prefix ? "target:" : ""; + debugfile += debugdir.get (); debugfile += "/"; - debugfile += dir; + debugfile += dir_notarget; debugfile += debuglink; if (separate_debug_file_exists (debugfile, crc32, objfile)) @@ -1453,7 +1456,8 @@ find_separate_debug_file (const char *dir, strlen (gdb_sysroot)) == 0 && IS_DIR_SEPARATOR (canon_dir[strlen (gdb_sysroot)])) { - debugfile = debugdir.get (); + debugfile = target_prefix ? "target:" : ""; + debugfile += debugdir.get (); debugfile += (canon_dir + strlen (gdb_sysroot)); debugfile += "/"; debugfile += debuglink;