[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