Re: Using vdr-dpg package for bug hunting?

Marko Mäkelä <[email protected]> Fri, 15 Nov 2024 20:25:10 +0200
Newsgroups gmane.linux.vdr
Message-ID <ZzeSBmCK_lHw6Ztr@jyty>
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