diff options
Diffstat (limited to 'pkgs/development/tools/misc/gdb/debug-info-from-env.patch')
-rw-r--r-- | pkgs/development/tools/misc/gdb/debug-info-from-env.patch | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/pkgs/development/tools/misc/gdb/debug-info-from-env.patch b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch index a7eda2c7e17..de59bd2d17b 100644 --- a/pkgs/development/tools/misc/gdb/debug-info-from-env.patch +++ b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch @@ -1,13 +1,24 @@ -Initialize debug-file-directory from NIX_DEBUG_INFO_DIRS, a colon-separated list -of directories with separate debugging information files. - ---- a/gdb/main.c -+++ b/gdb/main.c -@@ -551,3 +551,6 @@ captured_main_1 (struct captured_main_args *context) +diff -ur a/gdb/main.c b/gdb/main.c +--- a/gdb/main.c 2020-02-08 13:50:14.000000000 +0100 ++++ b/gdb/main.c 2020-02-24 10:02:07.731806739 +0100 +@@ -567,9 +567,17 @@ + gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX); + } -- debug_file_directory = relocate_gdb_directory (DEBUGDIR, -+ debug_file_directory = getenv("NIX_DEBUG_INFO_DIRS"); -+ -+ if (debug_file_directory == NULL) -+ debug_file_directory = relocate_gdb_directory (DEBUGDIR, - DEBUGDIR_RELOCATABLE); +- debug_file_directory +- = xstrdup (relocate_gdb_directory (DEBUGDIR, +- DEBUGDIR_RELOCATABLE).c_str ()); ++ debug_file_directory = getenv ("NIX_DEBUG_INFO_DIRS"); ++ if (debug_file_directory != NULL) ++ // This might be updated later using ++ // $ set debug-file-directory /to/some/path ++ // which will use xfree. We must then have a xmallocated ++ // copy of the string that can be xfeed later. ++ debug_file_directory = xstrdup (debug_file_directory); ++ else ++ debug_file_directory ++ = xstrdup (relocate_gdb_directory (DEBUGDIR, ++ DEBUGDIR_RELOCATABLE).c_str ()); + + gdb_datadir = relocate_gdb_directory (GDB_DATADIR, + GDB_DATADIR_RELOCATABLE); |