]> granicus.if.org Git - icinga2/commitdiff
Add support for GDB pretty printers in the dev environment.
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 11 Apr 2014 09:42:37 +0000 (11:42 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 11 Apr 2014 09:42:37 +0000 (11:42 +0200)
Refs #5996

dev/docker/Dockerfile
dev/docker/build
dev/run
tools/debug/gdb/gdbinit

index ba2ce29a5000c996e41b4d991e38934a2220e5c2..6b8aa329c8818c248cc551498e0f747175cb9d9f 100644 (file)
@@ -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
index 26f1f384bf4107fb614f4ea432be9e28457e1e87..1e19389a96c9bd246f37c03db141314bf13fbed4 100755 (executable)
@@ -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 d9139a3df2bfd4e1097801ae586ba86cb1af16b0..b14dcf312aa1969eb2728fe7ca5625dc9bcac51d 100755 (executable)
--- 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
index 92551e356410627ad1a650c57ced66704503c2be..9166a702f736410e2e8159e31dc33556942c649b 100644 (file)
@@ -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