2009/1/2 Stefano Sabatini <[email protected]> > On date Friday 2009-01-02 16:20:14 -0500, Franco Amato encoded: > > 2009/1/2 Franco Amato <[email protected]> > > > 2009/1/2 Michael Tison <[email protected]> > [...] > > Hi valgrind discovered that this simply check give to me a seg fault > > void MovieRecorderBase::CloseAudioEncoder() > > { > > if(m_audioStream->codec->codec) //here I get seg fault...is it a > > nightmare? > > m_audioStream->codec (actually a codec context) is NULL/invalid and > you're trying to access it, this shouldn't happen and looks like a > logic error in your code. > > > avcodec_close(m_audioStream->codec); > > > > ...more code... > > } > > > > I'm really confused and I don't know how to debug with gdb as I don't > have > > an active project > > written with visual studio but a list of files edited with emacs and > > compiled with g++ > > You don't need a project to debug with GDB, so you're sparing yourself > all of that M$ish non-portable bloat, and emacs offers you a direct > interface to GDB. But you may want to try cedet for emacs which > provides a complete development/debugging environment. > > [...] > > >> At this point it seems you just need to go over it with a debugger and > > >> watch the stream's codec context. > > > > > > > > > Working under Linux and never used gdb...:-( > > Follows just a quick crash-course tutorial on the GDB: > > 1) at first you need to compile your code with -g and -O0. Since you > may need to debug libav* then you may need to compile FFmpeg and > friends with --enable-debug=3, --disable-optimizations and > --disable-stripping. > > 2) M-x gdb and set the name of the program to debug when requested, a > buffer with the gdb prompt where you're meant to type gdb commands > should appear. > > 3) set the args if any with "set args <my fine args>" at the prompt > > 4) type run > > 5) at this point the program should crash, type bt and move in the > backtrace backward up until you find out where the error is, use the > frame command (use frame <frame number>), emacs should automatically > display to you the corresponding code in some buffer. > > 6) set eventually some breakpoint (clicking on the left of the code > where you want to set the breakpoint, a red circle should appear on > the left border of the buffer), also learn how to use the break, > enable, and disable commands. the "help" command is your friend. > > 7) practice and learn more about GDB/debugging, GDB is an invaluable > tool when debugging complex/not-so-complex programs.
Wow, thanx for the very complete tutorial online. I'll try all your explanations > > > > > Meanwhile thanx > > Regards. Regards > > _______________________________________________ > libav-user mailing list > [email protected] > https://lists.mplayerhq.hu/mailman/listinfo/libav-user > -- Franco Amato _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
