[MPlayer-users] MPlayer interrupted by signal 8 in module: video_read_frame
Dmitry Karasik
dmitry at karasik.eu.org
Fri Nov 9 15:50:35 CET 2001
Finally managed to get gdb working. See this:
Program received signal SIGFPE, Arithmetic exception.
0x80708c6 in demux_mov_fill_buffer (demuxer=0x82d8000, ds=0x8207b80) at
demux_mov.c:746
746 x/=(trak->stdata[30]<<8)+trak->stdata[31]; //
samples/packet
(gdb) bt
#0 0x80708c6 in demux_mov_fill_buffer (demuxer=0x82d8000, ds=0x8207b80)
at demux_mov.c:746
#1 0x8068592 in demux_fill_buffer (demux=0x82d8000, ds=0x8207b80) at
demuxer.c:171
#2 0x8068716 in ds_fill_buffer (ds=0x8207b80) at demuxer.c:222
#3 0x8068922 in ds_get_packet (ds=0x8207b80, start=0xbfbff4e0) at
demuxer.c:295
#4 0x80656d4 in video_read_frame (sh_video=0x820a500,
frame_time_ptr=0xbfbff4dc, start=0xbfbff4e0,
force_fps=0) at video.c:209
#5 0x805c0b8 in main (argc=3, argv=0xbfbff5a8, envp=0xbfbff5b8) at
mplayer.c:1223
(gdb) print trak->stdata[30]
$1 = 0 '\000'
(gdb) print trak->stdata[31]
$2 = 0 '\000'
(gdb) disass $eip-32 $eip+32
Dump of assembler code from 0x80708a6 to 0x80708e6:
0x80708a6 <demux_mov_fill_buffer+230>: (bad)
0x80708a7 <demux_mov_fill_buffer+231>: incl 0x7e8310c4(%ebx)
0x80708ad <demux_mov_fill_buffer+237>: xor %ah,(%ebx)
0x80708af <demux_mov_fill_buffer+239>: jle 0x80708dc
<demux_mov_fill_buffer+284>
0x80708b1 <demux_mov_fill_buffer+241>: mov 0x34(%esi),%ecx
0x80708b4 <demux_mov_fill_buffer+244>: movzbl 0x1e(%ecx),%eax
0x80708b8 <demux_mov_fill_buffer+248>: shl $0x8,%eax
0x80708bb <demux_mov_fill_buffer+251>: movzbl 0x1f(%ecx),%edx
0x80708bf <demux_mov_fill_buffer+255>: add %eax,%edx
0x80708c1 <demux_mov_fill_buffer+257>: mov %ebx,%eax
0x80708c3 <demux_mov_fill_buffer+259>: mov %edx,%edi
0x80708c5 <demux_mov_fill_buffer+261>: cltd
0x80708c6 <demux_mov_fill_buffer+262>: idiv %edi,%eax
0x80708c8 <demux_mov_fill_buffer+264>: mov %eax,%ebx
0x80708ca <demux_mov_fill_buffer+266>: movzbl 0x26(%ecx),%eax
0x80708ce <demux_mov_fill_buffer+270>: shl $0x8,%eax
0x80708d1 <demux_mov_fill_buffer+273>: movzbl 0x27(%ecx),%edx
0x80708d5 <demux_mov_fill_buffer+277>: add %edx,%eax
0x80708d7 <demux_mov_fill_buffer+279>: imul %eax,%ebx
0x80708da <demux_mov_fill_buffer+282>: jmp 0x807091f
<demux_mov_fill_buffer+351>
0x80708dc <demux_mov_fill_buffer+284>: mov 0xc(%ebp),%eax
0x80708df <demux_mov_fill_buffer+287>: mov 0x54(%eax),%edi
0x80708e2 <demux_mov_fill_buffer+290>: mov 0x50(%eax),%edx
0x80708e5 <demux_mov_fill_buffer+293>: mov %edx,0xffffffd8(%ebp)
End of assembler dump.
(gdb) print trak-> stdata_len
$4 = 94
(gdb) print trak->pos
$5 = 0
(gdb) print trak->chunks_size
$6 = 1
(gdb) print pts
$7 = 0
(gdb) print trak->samplesize
$8 = 29722
(gdb) print trak->stdata[34]
$9 = 0 '\000'
(gdb) print trak->stdata[35]
$10 = 0 '\000'
(gdb) print trak->stdata[38]
$11 = 0 '\000'
(gdb) print trak->stdata[39]
$12 = 0 '\000'
PS. As for my personal experience, one must NEVER trust the data from an
external file.
When you don't, you get nasty division by 0 and other shit. Happy
bugtracking!
--
Sincerely,
Dmitry
--- www.karasik.eu.org ---
Life ain't fair, but the root password helps.
- BOFH
More information about the MPlayer-users
mailing list