zoneminder
zoneminder copied to clipboard
Fix backtrace addr2line command.
addr2line wants the offset into the object, not the current location in memory and it will only work with the specified object.
Mention that you might need a debug package installed to get any info.
Something is off with the parsing (at least for me). Could it be that the message format is glibc dependent? Here a sample trace with Fedora 36 (glibc 2.35):
07/31/22 21:10:03.625795 undef[63133].ERR-zm_signal.cpp/50 [Got signal 11 (Segmentation fault), crashing]
07/31/22 21:10:03.625861 undef[63133].ERR-zm_signal.cpp/80 [Signal address is (nil), from 0x41be2e]
07/31/22 21:10:03.626001 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 0: /home/peterke/DEV/zoneminder/cmake-build-debug/src/zmu() [0x484b5f]]
07/31/22 21:10:03.626013 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 1: /lib64/libc.so.6(+0x3ea70) [0x7f47f5dbba70]]
07/31/22 21:10:03.626021 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 2: /home/peterke/DEV/zoneminder/cmake-build-debug/src/zmu() [0x41be2e]]
07/31/22 21:10:03.626028 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 3: /home/peterke/DEV/zoneminder/cmake-build-debug/src/zmu(main+0x69e) [0x40e982]]
07/31/22 21:10:03.626036 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 4: /lib64/libc.so.6(+0x29550) [0x7f47f5da6550]]
07/31/22 21:10:03.626046 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 5: /lib64/libc.so.6(__libc_start_main+0x89) [0x7f47f5da6609]]
07/31/22 21:10:03.626054 undef[63133].ERR-zm_signal.cpp/105 [Backtrace 6: /home/peterke/DEV/zoneminder/cmake-build-debug/src/zmu() [0x40e0f5]]
Strange, I tested on my Gentoo system & a Ubuntu VM (I don't have mine anymore, but here's the version from the original issue).
What I also don't like is when it does main+0x69e
since you need to lookup the address of main
manually and do the addition yourself.
I had thought of using libunwind to get better information, but didn't want to add yet another dependency.
Gentoo - sys-libs/glibc-2.35-r7
07/26/22 16:46:58.263803 zmc_dvideo0[9299].ERR-zm_signal.cpp/50 [Got signal 11 (Segmentation fault), crashing]
07/26/22 16:46:58.277548 zmc_dvideo0[9299].ERR-zm_signal.cpp/80 [Signal address is (nil), from 0x4c2bc9]
07/26/22 16:46:58.278137 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 0: src/zmc(+0x72f42) [0x523f42]]
07/26/22 16:46:58.278300 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 1: linux-gate.so.1(__kernel_rt_sigreturn+0) [0xb7eec560]]
07/26/22 16:46:58.278355 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 2: src/zmc(+0x11bc9) [0x4c2bc9]]
07/26/22 16:46:58.278401 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 3: /lib/libc.so.6(+0x213d5) [0xb58643d5]]
07/26/22 16:46:58.278446 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 4: /lib/libc.so.6(__libc_start_main+0x95) [0xb586449e]]
07/26/22 16:46:58.278490 zmc_dvideo0[9299].ERR-zm_signal.cpp/105 [Backtrace 5: src/zmc(+0x13b37) [0x4c4b37]]
Ubuntu - 2.31-0ubuntu9.9
07/28/22 13:26:59.090684 zmc_m1[4959].ERR-zm_signal.cpp/50 [Got signal 11 (Segmentation fault), crashing]
07/28/22 13:26:59.090735 zmc_m1[4959].ERR-zm_signal.cpp/80 [Signal address is (nil), from 0x55a08f5bc88d]
07/28/22 13:26:59.092376 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 0: /usr/bin/zmc(+0xc4321) [0x55a08f532321]]
07/28/22 13:26:59.092404 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7fa0b7e61420]]
07/28/22 13:26:59.092412 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 2: /usr/bin/zmc(+0x14e88d) [0x55a08f5bc88d]]
07/28/22 13:26:59.092417 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 3: /usr/bin/zmc(+0xfafc8) [0x55a08f568fc8]]
07/28/22 13:26:59.092422 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 4: /usr/bin/zmc(+0xfc80c) [0x55a08f56a80c]]
07/28/22 13:26:59.092427 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 5: /lib/x86_64-linux-gnu/libstdc++.so.6(+0xd6de4) [0x7fa0b5a53de4]]
07/28/22 13:26:59.092433 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 6: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7fa0b7e55609]]
07/28/22 13:26:59.092438 zmc_m1[4959].ERR-zm_signal.cpp/101 [Backtrace 7: /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7fa0b5740133]]
I have no problem with libunwind, as long as we can compile without it as well. Seems to be generally available.
For the sake of moving forward, I am merging this as is. Our current backtraces are useless.