summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/build/debug/300-gdb.sh16
-rw-r--r--scripts/build/debug/gdbinit.in6
2 files changed, 22 insertions, 0 deletions
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index 6f93cdd..66bd7b6 100644
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -105,6 +105,7 @@ do_debug_gdb_build() {
if [ "${CT_GDB_CROSS}" = "y" ]; then
local -a cross_extra_config
+ local gcc_version
CT_DoStep INFO "Installing cross-gdb"
CT_DoLog EXTRA "Configuring cross-gdb"
@@ -149,6 +150,21 @@ do_debug_gdb_build() {
CT_DoLog EXTRA "Installing cross-gdb"
CT_DoExecLog ALL make install
+ CT_DoLog EXTRA "Install '.gdbinit' template"
+ # See in scripts/build/internals.sh for why we do this
+ if [ -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
+ gcc_version=$( cat "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" )
+ else
+ gcc_version=$( sed -r -e '/version_string/!d; s/^.+= "([^"]+)".*$/\1/;' \
+ "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/version.c" \
+ )
+ fi
+ ${sed} -r \
+ -e "s:@@PREFIX@@:${CT_PREFIX_DIR}:;" \
+ -e "s:@@VERSION@@:${gcc_version}:;" \
+ "${CT_LIB_DIR}/scripts/build/debug/gdbinit.in" \
+ >"${CT_PREFIX_DIR}/share/gdb/gdbinit"
+
CT_EndStep
fi
diff --git a/scripts/build/debug/gdbinit.in b/scripts/build/debug/gdbinit.in
new file mode 100644
index 0000000..3950099
--- /dev/null
+++ b/scripts/build/debug/gdbinit.in
@@ -0,0 +1,6 @@
+python
+import sys
+sys.path.insert(0, '@@PREFIX@@/share/gcc-@@VERSION@@/python')
+from libstdcxx.v6.printers import register_libstdcxx_printers
+register_libstdcxx_printers (None)
+end