toolchain: mark sysroot as 'safe' path for gdb auto-load
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Tue, 8 Jun 2021 15:18:39 +0000 (17:18 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 25 Jul 2021 21:19:20 +0000 (23:19 +0200)
gdb can automatically load certain files as described in [1]. Such files
could install pretty-printers for complex data structures.

libstdcxx (C++ standard library) provided by gcc, is one example of a
library for which such auto-load file is available. But there are other
examples too, like libglib2.

However, gdb will only auto-load files if the file is located in one of the
locations treated as 'safe'. The Buildroot sysroot is not by default in that
list.

Provide a better debugging experience by adding the sysroot to the 'safe'
list, via the gdbinit file prepared by Buildroot.

[1] https://sourceware.org/gdb/onlinedocs/gdb/objfile_002dgdbdotext-file.html

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
toolchain/helpers.mk

index 17bc159f3eda52df5cd67b736a28499161ecec74..dfb2581ed5edda39474a735f3c3ea9ef358ddd47 100644 (file)
@@ -483,7 +483,8 @@ check_toolchain_ssp = \
 #
 gen_gdbinit_file = \
        mkdir -p $(STAGING_DIR)/usr/share/buildroot/ ; \
-       echo "set sysroot $(STAGING_DIR)" > $(STAGING_DIR)/usr/share/buildroot/gdbinit
+       echo "set sysroot $(STAGING_DIR)" > $(STAGING_DIR)/usr/share/buildroot/gdbinit ; \
+       echo "add-auto-load-safe-path $(STAGING_DIR)" >> $(STAGING_DIR)/usr/share/buildroot/gdbinit
 
 # Given a path, determine the relative prefix (../) needed to return to the
 # root level. Note that the last component is treated as a file component; use a