Re: Using vdr-dpg package for bug hunting?
Marko Mäkelä <[email protected]> Fri, 6 Dec 2024 21:51:06 +0200
| Newsgroups | gmane.linux.vdr |
|---|---|
| Message-ID | <Z1NVqhblStONwaMl@jyty> |
Sun, Dec 01, 2024 at 08:55:45PM +0100, schorpp wrote: >(gdb) print ptsValues[0] >$1 = 3600 >(gdb) print framesPerPayloadUnit >$2 = 1 >(gdb) print parser->iFrameTemporalReferenceOffset >$3 = -1 Okay, this looks like a straightforward division by zero, which in fact should have been fixed more than 10 years ago in VDR 2.1.7. Which version of VDR are you using again? commit 57222002b2b48baa9f5c8d0f253184801ba7200a Author: Klaus Schmidinger <[email protected]> Date: Sun Apr 13 13:50:04 2014 +0200 Fixed a possible division by zero in frame rate detection As far as I can tell, this fix is also preventing a division by a negative number, which would have been another thinkable source of SIGFPE. In your register output, we have a zero divisor in ecx: >(gdb) info registers ... >ecx 0x0 0 ... >(gdb) disassemble ... > 0x08136f4d <+1021>: mov 0x80(%esp),%ecx > 0x08136f54 <+1028>: xor %edx,%edx > 0x08136f56 <+1030>: mov 0x288(%ecx),%esi > 0x08136f5c <+1036>: mov %ecx,%eax > 0x08136f5e <+1038>: mov 0xc(%eax),%eax > 0x08136f61 <+1041>: mov 0x280(%ecx),%ecx > 0x08136f67 <+1047>: add 0x8(%esi),%ecx > >=> 0x08136f6a <+1050>: div %ecx There is some loading of registers from the stack, as well as zeroing out the more significant 32 bits of the dividend (edx). The dividend was calculated right before the division. Marko