From: Gunnar Beutner Date: Fri, 11 Apr 2014 09:42:37 +0000 (+0200) Subject: Add support for GDB pretty printers in the dev environment. X-Git-Tag: v0.0.10~142 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=492ec9dba86026a8bd6a617afe3f968277da5e6f;p=icinga2 Add support for GDB pretty printers in the dev environment. Refs #5996 --- diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile index ba2ce29a5..6b8aa329c 100644 --- a/dev/docker/Dockerfile +++ b/dev/docker/Dockerfile @@ -1,6 +1,8 @@ FROM debian:jessie RUN apt-get update -RUN apt-get install -y clang cmake make ccache flex bison libboost-all-dev libssl-dev git-core cgdb +RUN apt-get install -y clang cmake make ccache flex bison libboost-all-dev libssl-dev git-core cgdb subversion +RUN cd /root && mkdir gdb_printers && cd gdb_printers && svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python +RUN cd /root && git clone https://github.com/ruediger/Boost-Pretty-Printer RUN mkdir /root/build ADD build /root/build ENV HOME /root diff --git a/dev/docker/build b/dev/docker/build index 26f1f384b..1e19389a9 100755 --- a/dev/docker/build +++ b/dev/docker/build @@ -1,5 +1,10 @@ #!/bin/sh -cd $(dirname -- $0)/icinga2-build || exit 1 +cd $(dirname -- $0) || exit 1 + +cp icinga2/tools/debug/gdb/gdbinit /root/.gdbinit +sed -i 's/home\/gbeutner/root/' /root/.gdbinit + +cd icinga2-build || exit 1 CCACHE_SLOPPINESS="include_file_mtime" export CCACHE_SLOPPINESS @@ -8,4 +13,4 @@ if [ ! -e CMakeCache.txt ]; then CC="ccache clang" CXX="ccache clang++" cmake ../icinga2 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/icinga2 -DCMAKE_INSTALL_SYSCONFDIR=/root/icinga2-config fi -make -j 4 && make install && cgdb -ex r --args /opt/icinga2/sbin/icinga2 -c /root/icinga2-config/icinga2/icinga2.conf -DUseVfork=0 +make -j 4 && make install && cgdb -ex set scheduler-locking step -ex r --args /opt/icinga2/sbin/icinga2 -c /root/icinga2-config/icinga2/icinga2.conf -DUseVfork=0 diff --git a/dev/run b/dev/run index d9139a3df..b14dcf312 100755 --- a/dev/run +++ b/dev/run @@ -4,4 +4,11 @@ DIR=`pwd` cd docker docker.io build -t icinga2 --rm . -docker.io run -v $DIR/..:/root/icinga2 -v $DIR/.build:/root/icinga2-build -v $HOME/.ccache:/root/.ccache -v $DIR/config:/root/icinga2-config -t -i icinga2 /root/build + +if [ "$1" != "-i" ]; then + command="/root/build" +else + command="/bin/bash" +fi + +docker.io run -v $DIR/..:/root/icinga2 -v $DIR/.build:/root/icinga2-build -v $HOME/.ccache:/root/.ccache -v $DIR/config:/root/icinga2-config -t -i --rm icinga2 $command diff --git a/tools/debug/gdb/gdbinit b/tools/debug/gdb/gdbinit index 92551e356..9166a702f 100644 --- a/tools/debug/gdb/gdbinit +++ b/tools/debug/gdb/gdbinit @@ -11,5 +11,12 @@ python import sys sys.path.insert(0, '/home/gbeutner/gdb_printers/python') from libstdcxx.v6.printers import register_libstdcxx_printers -register_libstdcxx_printers (None) +register_libstdcxx_printers(None) +end + +python +import sys +sys.path.insert(0, '/home/gbeutner/Boost-Pretty-Printer') +from boost.printers import register_printer_gen +register_printer_gen(None) end