Change in docker-playground[master]: README.md: Document how to get gdb backtrace from process crash

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Thu Jan 16 20:27:33 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/16891 )

Change subject: README.md: Document how to get gdb backtrace from process crash
......................................................................

README.md: Document how to get gdb backtrace from process crash

Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e
---
M README.md
1 file changed, 37 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved; Verified



diff --git a/README.md b/README.md
index 05ee31f..479e045 100644
--- a/README.md
+++ b/README.md
@@ -72,6 +72,43 @@
 decided to scrap the file, and just keep the short list of dependencies
 right above where they would be needed in the `jenkins.sh`.
 
+## Obtaining gdb backtrace from crash
+
+If for instance TTCN3 test is producing a crash on a program running in docker,
+eg. osmo-msc, it is desirable to get a full crash report. This section describes
+how to do so.
+
+First, open `osmo-$program/Dockerfile` and add lines to install `gdb` plus
+`$program` dependency debug packages. For instance:
+
+```
++RUN    apt-get install -y --no-install-recommends \
++               gdb \
++               libosmocore-dbg libosmo-abis-dbg libosmo-netif-dbg libosmo-sigtran-dbg osmo-msc-dbg && \
++               apt-get clean
+```
+
+In same `Dockerfile` file, modify configure to build with debug symbols enabled
+and other interesting options, such as `--enable-sanitize`:
+
+```
+-       ./configure --enable-smpp --enable-iu && \
++       export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \
++       export CFLAGS="-g -O0 -fno-omit-frame-pointer" && \
++       export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \
++       ./configure --enable-smpp --enable-iu --enable-sanitize && \
+```
+
+Finally open the script you use to run the program (for instance
+`ttcn3-$program-master/jenkins.sh`), and modify it to launch the process using
+gdb, and to print a full backtrace when control returns to gdb (when the process
+crashes):
+
+```
+-/bin/sh -c "osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1"
++/bin/sh -c "gdb -ex 'run' -ex 'bt full' --arg osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1"
+```
+
 ## See also
 * [Overhyped Docker](http://laforge.gnumonks.org/blog/20170503-docker-overhyped/)
   for related rambling on why this doesn't work as well as one would

-- 
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/16891
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I507707a3ed0e7f88bcc9006612df531c848b949e
Gerrit-Change-Number: 16891
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200116/3669a893/attachment.htm>


More information about the gerrit-log mailing list