debug/gdb: install gdbinit sample file

gdb needs to know where to find the libstdc++ helper python script
to do, well, whatever it has to do with it...

We can't install that in the user's ~/.gdbinit, it's too complex to
handle all the cases. Moreover, if the user is using more than one
toolchain, we can't put all that stuff in there...

Just provide a sample config file the user can adapt to his/her
own needs.

Thanks go to Khem RAJ for providing such a hint:
    http://sourceware.org/ml/crossgcc/2011-07/msg00026.html

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-07-24 20:30:52 +02:00
parent 4d85f4389d
commit 82ba904b90
2 changed files with 22 additions and 0 deletions

View File

@ -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

View File

@ -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