summary refs log tree commit diff
path: root/pkgs/development/tools/misc/gdb/debug-info-from-env.patch
blob: de59bd2d17bb63bc473e34a36ebca61875f3afca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
-    = 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);