[vlc-devel] memory corruption / vlc in valgrind

Gilles Sabourin gilles.sabourin at free.fr
Sun Nov 4 16:11:08 CET 2007


Hi,


I do not know valgrind very well. I have launched it with the following 
options :

valgrind --tool=memcheck --leak-check=yes --db-attach=yes /usr/bin/vlc


==2904== Memcheck, a memory error detector.
==2904== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==2904== Using LibVEX rev 1732, a library for dynamic binary translation.
==2904== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==2904== Using valgrind-3.2.3, a dynamic binary instrumentation framework.
==2904== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==2904== For more details, rerun with: -v
==2904==
VLC media player 0.9.0-svn Grishenko
vex amd64->IR: unhandled instruction bytes: 0xF 0xF 0xC0 0x9E
==2904== valgrind: Unrecognised instruction at address 0x4EE8BC1.
==2904== Your program just tried to execute an instruction that Valgrind
==2904== did not recognise.  There are two possible reasons for this.
==2904== 1. Your program has a bug and erroneously jumped to a non-code
==2904==    location.  If you are running Memcheck and you just saw a
==2904==    warning about a bad jump, it's probably your program's fault.
==2904== 2. The instruction is legitimate but Valgrind doesn't handle it,
==2904==    i.e. it's Valgrind's fault.  If you think this is the case or
==2904==    you are not sure, please let us know and we'll try to fix it.
==2904== Either way, Valgrind will now raise a SIGILL signal which will
==2904== probably kill your program.
[00000001] main libvlc debug: VLC media player - version 0.9.0-svn Grishenko - 
(c) 1996-2007 the VideoLAN team
[00000001] main libvlc debug: libvlc was configured 
with ./configure  '--prefix=/usr' '--libdir=/usr/lib64' '--enable-fast-install' '--enable-shout' '--enable-skins2' '--disable-pda' '--disable-macosx' '--disable-qnx' '--enable-ncurses' '--enable-xosd' '--enable-visual' '--disable-goom' '--enable-slp' '--enable-lirc' '--disable-joystick' '--disable-corba' '--enable-dvdread' '--enable-dvdnav' '--disable-dshow' '--enable-v4l' '--enable-pvr' '--enable-vcd' '--enable-satellite' '--enable-ogg' '--enable-mkv' '--enable-mod' '--enable-libcdio' '--enable-vcdx' '--enable-cddax' '--enable-libcddb' '--enable-x11' '--enable-xvideo' '--enable-glx' '--enable-fb' '--enable-mga' '--enable-freetype' '--enable-fribidi' '--enable-svg' '--disable-hd1000v' '--disable-directx' '--disable-wingdi' '--disable-glide' '--enable-aa' '--enable-caca' '--enable-oss' '--enable-esd' '--enable-arts' '--enable-waveout' '--enable-portaudio' '--disable-coreaudio' '--disable-hd1000a' '--enable-mad' '--enable-ffmpeg' '--enable-faad' '--enable-a52' '--enable-dca' '--enable-flac' '--enable-libmpeg2' '--enable-vorbis' '--enable-tremor' '--enable-speex' '--disable-tarkin' '--enable-theora' '--enable-cmml' '--enable-utf8' '--disable-pth' '--enable-st' '--disable-gprof' '--disable-cprof' '--disable-testsuite' '--disable-optimizations' '--disable-altivec' '--enable-debug' '--enable-release' '--enable-sout' '--with-ffmpeg-faac' '--disable-galaktos' '--enable-httpd' '--disable-jack' '--enable-mozilla' '--enable-alsa' '--enable-real' '--enable-realrtsp' '--enable-live555' '--with-live555-tree=/usr/lib64/live' '--enable-dvbpsi' '--enable-dvb'
[00000001] main libvlc debug: translation test: code is "Fr"
==2904== Thread 9:
==2904== Syscall param write(buf) points to uninitialised byte(s)
==2904==    at 0x5795DEB: (within /lib64/libpthread-2.5.so)
==2904==    by 0xFF5F6DE: (within /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xFF6467E: (within /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xFF64770: _XReply (in /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xFF4B3AD: XInternAtom (in /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xFF5F0C2: XSetWMProperties (in /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xD62DBA9: QWidgetPrivate::create_sys(unsigned long, bool, 
bool) (in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD604906: QWidget::create(unsigned long, bool, bool) 
(in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD6052B9: QWidgetPrivate::setWindowTitle_helper(QString 
const&) (in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD6054EA: QWidget::setWindowTitle(QString const&) 
(in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD138435: MainInterface::setVLCWindowsTitle(QString) 
(main_interface.cpp:305)
==2904==    by 0xD13A215: MainInterface::MainInterface(intf_thread_t*) 
(main_interface.cpp:126)
==2904==  Address 0x4121AD4 is 4,460 bytes inside a block of size 16,384 
alloc'd
==2904==    at 0x4C21DEF: calloc 
(in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==2904==    by 0xFF50316: XOpenDisplay (in /usr/lib64/libX11.so.6.2.0)
==2904==    by 0xD61910D: qt_init(QApplicationPrivate*, int, _XDisplay*, 
unsigned long, unsigned long) (in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD5CEE18: QApplicationPrivate::construct(_XDisplay*, unsigned 
long, unsigned long) (in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD5CF768: QApplication::QApplication(int&, char**, bool, int) 
(in /usr/lib64/libQtGui.so.4.3.2)
==2904==    by 0xD12CD72: Init(intf_thread_t*) (qt4.cpp:234)
==2904==    by 0x4E6F5CB: RunInterface (interface.c:270)
==2904==    by 0x578F09D: start_thread (in /lib64/libpthread-2.5.so)
==2904==    by 0x5C6968C: clone (in /lib64/libc-2.5.so)
==2904==
==2904== ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ----

Now, what do I have to do ?

Gilles



More information about the vlc-devel mailing list