|
Message-ID: <c9b18342-406a-6741-77f9-c40a1fcd0fdd@isc.org> Date: Tue, 23 Jun 2020 13:43:12 +0200 From: Michal Nowak <mnowak@....org> To: musl@...ts.openwall.com Subject: Better backtrace from core dump Hi, in GitLab we have jobs which run BIND system tests on different operating system, mostly in Docker on Debian 10 but too in KVM virtual machines for non-Linux operating systems. If the test produces core dump, we generate backtrace out of it while still in the CI. For all C libraries but for musl we get reasonable backtraces, e.g. https://gitlab.isc.org/isc-projects/bind9/-/jobs/970585, but for Alpine Linux 3.11 (musl 1.1.24-r2 & GCC 9.2.0-r4) we get something like this (https://gitlab.isc.org/isc-projects/bind9/-/jobs/970568): warning: Can't read pathname for load map: No error information. Core was generated by `/builds/isc-projects/bind9/bin/named/.libs/lt-named -D statistics-ns3 -X named.'. Program terminated with signal SIGABRT, Aborted. #0 0x00007fb708ec39ee in setjmp () from /lib/ld-musl-x86_64.so.1 [Current thread is 1 (LWP 1274)] #0 0x00007fb708ec39ee in setjmp () from /lib/ld-musl-x86_64.so.1 #1 0x00007fb708ec3b49 in raise () from /lib/ld-musl-x86_64.so.1 #2 0x804ad6685d596f46 in ?? () #3 0x00007fb708bd1030 in ns_modules () from /builds/isc-projects/bind9/lib/ns/.libs/libns.so.1702 #4 0x00007fb708e59edf in ?? () from /builds/isc-projects/bind9/lib/isc/.libs/libisc.so.1702 #5 0x0000000042756621 in ?? () #6 0x00007fb7069c9db0 in ?? () #7 0x0000001800000018 in ?? () #8 0x00007fb708f0e873 in ?? () from /lib/ld-musl-x86_64.so.1 #9 0x0000000000000008 in ?? () #10 0x00007fb7069ca0e8 in ?? () #11 0x00007fb7069ca0d0 in ?? () #12 0x00007fb708e32d12 in isc_hash_function (data=0x459, length=0, case_sensitive=<optimized out>) at hash.c:117 This is how we generate the backtrace: "${top_builddir}/libtool" --mode=execute gdb --batch --command=run.gdb --core="$coredump" -- "$binary" The GDB command can be either 'bt' or 'thread apply all bt full' (for more on the GDB invocation, see https://gitlab.isc.org/isc-projects/bind9/-/blob/main/bin/tests/system/run.sh.in#L268). CFLAGS used: -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 -g -Wall -Wextra This is what we install on top of the stock Alpine Linux 3.11 Docker image: https://gitlab.isc.org/isc-projects/images/-/blob/main/docker/bind9/alpine-template/Dockerfile. Are there other packages, we should get into the image to get better backtraces? Should we use something else than GDB? Should we add some compiler flags? Thanks, Michal
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.