Thu, Nov 14, 2024 at 01:37:42PM +0100, schorpp wrote:
Hello,
I'm about fixing this old BUG exiting VDR on every 1st recording start:
# gdb attach <pid of vdr>
Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x9c801b40 (LWP 8182)]
0x08136f6a in cFrameDetector::Analyze(unsigned char const*, int) ()
(gdb) bt
#0 0x08136f6a in cFrameDetector::Analyze(unsigned char const*, int) ()
On Debian and many other GNU/Linux distributions, executables are
without debug symbols by default. The debug symbols are separately
available in another repository, which you can add to a file in
/etc/apt/sources.list.d:
deb http://deb.debian.org/debian-debug/ bookworm-debug main
(Replace bookworm with your Debian version of choice.)
After an apt-update, you should be able to execute
sudo apt install vdr-dbgsym
to get some files under /usr/lib/debug/.build-id/ that should match the
BuildID that should be reported by the following command:
file /usr/bin/vdr
That said, sometimes it is possible to find the bug by executing simply
the following commands in GDB:
disassemble 0x08136f6a
info registers
If GDB complains that it does not know the function boundaries, you can
try to start disassembly from a few bytes earlier:
x/32i 0x08136f50
Hopefully this will show the problem, and this is easy enough to match
with the source code. If not, the debugging symbols for your vdr
executable should help you to produce a fully resolved stack trace
including the values of local variables (backtrace full).
I've installed the vdr-dbg debian package to provide debugging symbols
I can't find a package with that name at https://packages.debian.org.
Best regards,
Marko