[vlc-devel] How to GDB into MJPEG decoder - What source file to set breakpoint?

Ed Sutton ESutton at fescorp.com
Mon Jan 26 21:09:05 CET 2009

> > > I run GDB and try unsuccessfully to hit a breakpoint in one of the
> > > libvacodec modules using:
> > >
> > > gdb /usr/local/av/bin/vlc
> > > (gdb) break mjpegdec.c:ff_mjpeg_decode_sof
> > > (gdb) #gdb says no source file found and I tell it "Yes" to put a
> > > breakpoint on future *shared library load* (gdb) Run -vvv
> > udp://@:1234
> > >
> > > Is my problem that gdb never finds the ffmpeg symbolic info?  Or am
> I
> > in
> > > the wrong source code?
> >
> > That symbol should be in libavformat or libavcodec, which are linked
> > from the respective VLC plugins.
> When I do a "ldd vlc" I did not see either. I assume that these two
> shared libraries are not loaded until the VLC runs which explains why
> the ldd utility does not know about them.
> What is the name of the VLC plugin that would be calling the M-JPEG
> decoder?  Sorry, I cannot find much describing VLC plugins.
> Is a plugin is a run-time loaded module that performs a task such as M-
> JPEG decoding?
> I'm working full time trying to learn VLC, and your tips have been very
> helpful, out but I think I am still missing the big picture on how a
> frame-based decoder such as M-JPEG is implemented.
> Thanks again,

Never mind, I am starting to make progress with gdb.  Gdb is painful to learn but I am sure will be invaluable in the long run. I can now step into InitVideoDec where the lib is being loaded using.  Hopefully, I am on my way to understanding VLC better.

(gdb)break video.c:InitVideoDec

However, I am still not sure if a VLC plugin is a defined interface API thing or if "plugin" is simply a logical concept?

Thanks again for your assistance.  


More information about the vlc-devel mailing list