[MEncoder-users] MEncoder segfault

Dieter freebsd at sopwith.solgatos.com
Tue Jan 16 20:49:43 CET 2007


> > > The problem is that MEncoder segfaults
> >
> > Perhaps you have found a bug.
> >
> > Compile with -g.  Run under gdb (or your favorite debugger).
> > Get a stack backtrace.  Post the backtrace.
> 
> Well, I've never debugged a program before, so I installed 'ddd' which is a 
> front-end to 'gdb' and recompiled with '-g' and I ran there MEncoder with the 
> below parameters, and it segfaultet as expected... This is all I got 
> from 'ddd'
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x081ec674 in sws_freeFilter ()
> 
> These are the MEncoder parameters I used
> 
> mencoder dvd://1 -dvd-device /dev/hdc -vf scale=512:384:0:0 -sws 10 -aid 
> 128 -channels 4 -oac lavc -lavcopts acodec=ac3:abitrate=192 -ovc 
> xvid -xvidencopts 
> fixed_quant=2:me_quality=6:vhq=2:max_key_interval=250:max_bframes=2:bvhq=1:nopacked:noqpel:nogmc:trellis:quant_type=h263:n
>ointerlacing:chroma_me:chroma_opt:hq_ac:nolumi_mask:nocartoon:rc_reaction_delay_factor=0:rc_averaging_period=50:closed_gop:
>autoaspect -o /home/microchip/XviD.avi 

I'm not familiar with ddd.  In gdb, use the "bt" or "backtrace" command.
I assume that ddd has a similar command.

If the file that caused the segfault was compiled with -g, then the debugger
should print out the source code filename and line number.  That makes finding
the problem a *lot* easier.  Segfault is probably a bad pointer.


(gdb) help stack
Examining the stack.
The stack is made up of stack frames.  Gdb assigns numbers to stack frames
counting from zero for the innermost (currently executing) frame.

At any time gdb identifies one frame as the "selected" frame.
Variable lookups are done with respect to the selected frame.
When the program being debugged stops, gdb selects the innermost frame.
The commands below can be used to select other frames by number or address.

List of commands:

backtrace -- Print backtrace of all stack frames
bt -- Print backtrace of all stack frames
down -- Select and print stack frame called by this one
frame -- Select and print a stack frame
return -- Make selected stack frame return to its caller
select-frame -- Select a stack frame without printing anything
up -- Select and print stack frame that called this one




More information about the MEncoder-users mailing list