Re: Using vdr-dpg package for bug hunting?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux