[gst-devel] Gdb - help with debbug
Wim Taymans
wim.taymans at gmail.com
Thu May 7 10:33:11 CEST 2009
On Thu, 2009-05-07 at 00:09 -0300, Guilherme wrote:
Guilherme,
Your code does not make sense, you pass unitialized data to a library
function that is usually not used from an application.
You also seem to construct a pipeline that is not doing very much. What
is it that you are trying to do?
I would suggest to read the documentation here and get back to us with
what is not clear enough about it:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
Wim
> Antoine, I have the whole profile of the problem now.
> Plz, if you could give me a help with that.
>
> (gdb) run
> Starting program: /home/guilherme/EBA
> [Thread debugging using libthread_db enabled]
> [New Thread 0xb7ad09b0 (LWP 3585)]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xb7ad09b0 (LWP 3585)]
> 0xb7e9e582 in g_type_check_instance_cast () from
> /usr/lib/libgobject-2.0.so.0
> (gdb) backtrace
> #0 0xb7e9e582 in g_type_check_instance_cast () from
> /usr/lib/libgobject-2.0.so.0
> #1 0x08048a5b in main ()
> (gdb) valgrind
> Undefined command: "valgrind". Try "help".
> (gdb) bt
> #0 0xb7e9e582 in g_type_check_instance_cast () from
> /usr/lib/libgobject-2.0.so.0
> #1 0x08048a5b in main ()
> (gdb)
>
>
> And my code:
>
> #include<gst/gst.h>
> #include<glib.h>
> #include<gst/fft/gstffts16.h>
>
> static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data);
>
> int main(int argc, char *argv[])
> {
> GMainLoop *loop;
>
> GstElement *pipeline, *source, *filesink;
> GstBus *bus;
> GstFFTS16 *fft;
>
> gint16 td;
> gint16 *timedata = &td;
>
> gint16 bufferin;
> gint16 *in = &bufferin;
>
> GstFFTS16Complex fq;
> GstFFTS16Complex *freq = &fq;
>
>
> /*const gint16 *in;*/
> /*GstFFTS16Complex *freq;*/
>
>
> gst_init(&argc, &argv);
>
> loop = g_main_loop_new (NULL, FALSE);
>
> /*creating elements*/
> pipeline = gst_pipeline_new ("audio-player");
> source = gst_element_factory_make ("audiotestsrc",
> "file-source");
> fft = gst_fft_s16_new (128, FALSE);
> filesink = gst_element_factory_make ("alsasink",
> "audio-output");
>
>
>
> if (!pipeline || !source || !fft || !filesink) {
> g_printerr ("One element could not be created. Exiting.\n");
> return -1;
> }
>
> /*set-up the pipeline*/
>
> /*set up fft transform*/
> /*gst_fft_s16_window(fft, timedata, GST_FFT_WINDOW_RECTANGULAR);*/
> gst_fft_s16_fft (fft, in, freq);
>
>
> /*message handler*/
> bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
> gst_bus_add_watch (bus, bus_call, loop);
> gst_object_unref (bus);
>
> /*colocar todos elementos na pipeline*/
> gst_bin_add_many (GST_BIN (pipeline), source, filesink, NULL);
>
> /*Linkar elementos*/
> /*Cria o link entre os pads dos elementos*/
> gst_element_link_many (source, filesink, NULL);
>
>
> /* set pipeline playing status */
> gst_element_set_state (pipeline, GST_STATE_PLAYING);
> g_print ("Running...\n");
>
> /*iterate*/
> g_main_loop_run (loop);
> g_print ("Recording\n");
>
> /* Out of the main loop, clean up nicely */
> g_print ("Returned, stopping playback\n");
> gst_element_set_state (pipeline, GST_STATE_NULL);
>
> g_print ("Deleting pipeline\n");
> gst_object_unref (GST_OBJECT (pipeline));
>
> return 0;
> }
>
> static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data) {
>
> return TRUE;
> }
>
>
>
>
>
> Can't really figure out what is gong on!
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Tks!
>
> -------------------
>
> Guilherme Longo
> Dept. Eng. da Computação
> Unaerp
>
> Linux User - #484927
>
> *Before Asking
> http://www.istf.com.br/?page=perguntas
>
> !- I'd rather die on my feet than live on my knees -!
>
>
>
> Antoine Tremblay wrote:
> > Did you try a backtrace ?
> >
> > Type bt <enter> in gdb ..
> >
> > It will show you the backtrace of the sigsegv and thus the line that
> > failed...
> >
> > If not you can always try valgrind ...
> >
> >
> > On Wed, May 6, 2009 at 7:59 PM, Guilherme <grlongo.ireland at gmail.com
> > <mailto:grlongo.ireland at gmail.com>> wrote:
> >
> > Hi all.
> >
> > I finished building my code and it's compiled without any error, but
> > when I run it I get the beautiful segmentation fault.
> >
> > No good.
> >
> > Running gdb I can't get the line of the problem, instead I have this:
> >
> > (gdb) run
> > Starting program: /home/guilherme/EBA
> > [Thread debugging using libthread_db enabled]
> > [New Thread 0xb7a479b0 (LWP 5565)]
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0xb7a479b0 (LWP 5565)]
> > 0xb7bf2234 in ?? () from /usr/lib/libgstfft-0.10.so.0
> >
> > Is this a normal debug or I'm doing smth wrong?
> > It seen a problem with my fft implementation. That is the code:
> >
> >
> > #include<gst/gst.h>
> >
> >
> > #include<glib.h>
> >
> >
> > #include<gst/fft/gstffts16.h>
> >
> >
> >
> > static gboolean bus_call(GstBus *bus, GstMessage *msg,
> > gpointer data);
> >
> >
> >
> > int main(int argc, char *argv[])
> >
> >
> > {
> >
> >
> > GMainLoop *loop;
> >
> >
> >
> >
> >
> > GstElement *pipeline, *source, *filesink;
> >
> >
> > GstBus *bus;
> >
> >
> > GstBuffer *buffer;
> >
> >
> > GstFFTS16 *fft;
> >
> >
> >
> >
> >
> > const gint16 *in;
> >
> >
> > GstFFTS16Complex *freq;
> >
> >
> >
> >
> >
> > gst_init(&argc, &argv);
> >
> >
> >
> >
> >
> > loop = g_main_loop_new (NULL, FALSE);
> >
> >
> >
> >
> >
> > /*creating elements*/
> >
> >
> > pipeline = gst_pipeline_new
> > ("audio-player");
> >
> >
> > source = gst_element_factory_make
> > ("audiotestsrc",
> > "file-source");
> >
> >
> > filesink = gst_element_factory_make ("alsasink",
> > "audio-output");
> >
> >
> > fft = gst_fft_s16_new (128, FALSE);
> >
> >
> >
> >
> >
> >
> >
> >
> > if (!pipeline || !source || !filesink) {
> >
> >
> > g_printerr ("One element could not be created.
> > Exiting.\n");
> >
> >
> > return -1;
> >
> >
> > }
> >
> >
> >
> >
> >
> > /*set-up the pipeline*/
> >
> >
> >
> >
> >
> > /*create and set up buffer*/
> >
> >
> > g_print ("\n\nCreating Buffer\n");
> >
> >
> > buffer = gst_buffer_new();
> >
> >
> > if(!buffer)
> >
> >
> > g_printerr ("buffer could not be created\n");
> >
> >
> > else
> >
> >
> > g_print ("Buffer Created\n\n");
> >
> >
> >
> >
> >
> > /*set up fft transform*/
> >
> >
> > gst_fft_s16_fft (fft, in, freq);
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > /*message handler*/
> >
> >
> > bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
> >
> >
> > gst_bus_add_watch (bus, bus_call, loop);
> >
> >
> > gst_object_unref (bus);
> >
> >
> >
> >
> >
> > /*colocar todos elementos na pipeline*/
> >
> >
> > gst_bin_add_many (GST_BIN (pipeline), source,
> > filesink, NULL);
> >
> >
> >
> >
> >
> > /*Linkar elementos*/
> >
> >
> > /*Cria o link entre os pads dos elementos*/
> >
> >
> > gst_element_link_many (source, filesink, NULL);
> >
> >
> >
> >
> >
> >
> >
> >
> > /* set pipeline playing status */
> >
> >
> > gst_element_set_state (pipeline, GST_STATE_PLAYING);
> >
> >
> > g_print ("Running...\n");
> >
> >
> >
> >
> >
> > /*iterate*/
> >
> >
> > g_main_loop_run (loop);
> >
> >
> > g_print ("Recording\n");
> >
> >
> >
> >
> >
> > /* Out of the main loop, clean up nicely */
> >
> >
> > g_print ("Returned, stopping playback\n");
> >
> >
> > gst_element_set_state (pipeline, GST_STATE_NULL);
> >
> >
> >
> > g_print ("Deleting pipeline\n");
> >
> >
> > gst_object_unref (GST_OBJECT (pipeline));
> >
> >
> >
> > return 0;
> >
> >
> > }
> >
> >
> >
> > static gboolean bus_call(GstBus *bus, GstMessage *msg,
> > gpointer data) {
> >
> >
> >
> > return TRUE;
> >
> >
> > }
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ------------------------------------------------------------------------------
> > The NEW KODAK i700 Series Scanners deliver under ANY
> > circumstances! Your
> > production scanning environment may not be a perfect world - but
> > thanks to
> > Kodak, there's a perfect scanner to get the job done! With the NEW
> > KODAK i700
> > Series Scanner you'll get full speed at 300 dpi even with all image
> > processing features enabled. http://p.sf.net/sfu/kodak-com
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > <mailto:gstreamer-devel at lists.sourceforge.net>
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> >
> >
> > ------------------------------------------------------------------------
> >
> > ------------------------------------------------------------------------------
> > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> > production scanning environment may not be a perfect world - but thanks to
> > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> > Series Scanner you'll get full speed at 300 dpi even with all image
> > processing features enabled. http://p.sf.net/sfu/kodak-com
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> >
>
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list