[gst-devel] Question: How do I obtain a better gdb back trace of segmentation faults?

Maciej Katafiasz ml at mathrick.org
Thu Jan 6 14:56:07 CET 2005


Dnia 06-01-2005, czw o godzinie 15:53 -0500, David Parr napisał:
> I have submitted a defect related to a segmentation fault in videobox
> plugin (#163159).  I am new to the Linux platform, but have been
> developing software for years and need some assistance.
> 
> My backtrace contained only a few symbols, and I would like advise on
> the correct way to compile/link or better use gdb so that I can submit
> more useful information in the future.
> 
> I would appreciate any help/advise that you can spare.  The steps that
> I followed, and the output that I obtained are below.
> 
> Related question - is this the preferred forum for these types of
> questions / requests?  

Yes. This list or IRC.

[snip]

> (gdb) r
> Starting program: /home/dparr/gst/gstreamer-0.8.8/tools/gst-launch
> filesrc location=/home/dparr/media.samples/MOV00053.MPG \! mpegdemux
> name=demux demux.video_00\! mpeg2dec \! videobox left=-10 right=-10
> top=-10 bottom=-10 fill=1 \! ffcolorspace \! ximagesink
> Detaching after fork from child process 23843.
> Detaching after fork from child process 23845.
> Detaching after fork from child process 23848.
> Detaching after fork from child process 23851.
> Detaching after fork from child process 23852.
> RUNNING pipeline ...
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x4063ade5 in ?? ()
> (gdb) i threads
> (gdb) bt
> #0  0x4063ade5 in ?? ()
[...]
> #24 0x00000294 in ?? ()
> #25 0x00000004 in ?? ()
> #26 0x08064cc8 in ?? ()
> #27 0x407e7ba4 in ?? ()
> #28 0xbfffe4f8 in ?? ()
> #29 0x407e421b in ?? ()
> #30 0xbfffe4fc in ?? ()
> #31 0x401438f0 in globfree64 () from /lib/tls/libc.so.6
> #32 0x00000001 in ?? ()
> #33 0x08064cc8 in ?? ()
> #34 0x00000001 in ?? ()
> ---Type <return> to continue, or q <return> to quit---q
> Quit
> (gdb)

This backtrace has definitely been stomped on, as can be seen from #25,
#32 and #34. Nevertheless, check that you have glibc-debug packages
installed (if your distro provides them, Debian at least does), same for
other common libraries. But I suspect not much can be done from simple
catching SEGV, more involved debugging with --gst-debug-level=4 or 5 and
general usage of gdb will be probably required. You need to at least
estimate the point where it happens, the stack looks too smacked up to
be usable for anything. If you can't find anything, as last resort you
can try "ret" until you get back to gst frame, there is very slim chance
that some usable trace will be there to at least bootstrap debugging,
but it's really slim. Getting hold of a gst hacker and ensuring he is
able to reproduce it on his box, and then making him debug it may be
your best bet however, if you aren't able to find anything yourself.

HTH,
Maciej

-- 
Maciej Katafiasz <ml at mathrick.org>





More information about the gstreamer-devel mailing list