(My comments are unbold, system commands and prints are bold)

Hi,

I followed tutorials below:

https://wiki.gnuradio.org/index.php/TutorialsGDB
https://wiki.gnuradio.org/index.php/TutorialsDebugging

I made a dummy block. I am learning to debug GR apps. I put the following
inside my work function

*std::cout << "Hello" << std::endl; *
*GR_LOG_DEBUG(d_logger, "\n");*
*GR_LOG_DEBUG(d_logger, boost::format("Hello Debugger") );*

And I expect them to be printed while the program runs. However I never see
them printed at all :-/ Then I thought to use gdb and see whats happening.

Here is what I did:
First I did cmake using the following :

*cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_GR_LOG=On
-DCMAKE_INSTALL_PREFIX=../ ../*

Its says me following. I wanted logging actually but looks like it ignored
me.

*CMake Warning:*
*  Manually-specified variables were not used by the project:*

*    ENABLE_GR_LOG*

Is this OK ?

Well I went ahead and compiled. Make test was also successful.

Now I created a grc file using my own block and in the top_block.py, I did
the following at the bottom:

*if __name__ == '__main__':*
*    print 'Blocked waiting for GDB attach (pid = %d)' % (os.getpid(),)*
*    raw_input ('Press Enter to continue: ')*
*    main()*

Upon running it, I got pid and attached my gdb to that. Hit enter and I got
following

*john@john-Precision-5510:~/radio/default/src/gr-ieee-80211/build$ sudo gdb
-p 6160*
*GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1*
*Copyright (C) 2016 Free Software Foundation, Inc.*
*License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html <http://gnu.org/licenses/gpl.html>>*
*This is free software: you are free to change and redistribute it.*
*There is NO WARRANTY, to the extent permitted by law.  Type "show copying"*
*and "show warranty" for details.*
*This GDB was configured as "x86_64-linux-gnu".*
*Type "show configuration" for configuration details.*
*For bug reporting instructions, please see:*
*<http://www.gnu.org/software/gdb/bugs/
<http://www.gnu.org/software/gdb/bugs/>>.*
*Find the GDB manual and other documentation resources online at:*
*<http://www.gnu.org/software/gdb/documentation/
<http://www.gnu.org/software/gdb/documentation/>>.*
*For help, type "help".*
*Type "apropos word" to search for commands related to "word".*
*Attaching to process 6160*
*[New LWP 6161]*
*[New LWP 6162]*
*[New LWP 6163]*
*[New LWP 6164]*
*[New LWP 6165]*
*[New LWP 6166]*
*[New LWP 6167]*
*[Thread debugging using libthread_db enabled]*
*Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".*
*0x00007f654851624d in read () at ../sysdeps/unix/syscall-template.S:84*
*84 ../sysdeps/unix/syscall-template.S: No such file or directory.*

Is this normal ? I searched on google but couldn't understand properly.

Well I kept going ahead and made a break point on my work function.


*b gr::ieee802_11::test_cf_impl::work(int, std::vector<void const*,
std::allocator<void const*> >&, std::vector<void*, std::allocator<void*>
>&) *

Then I continued in gdb, program started running correctly but never saw my
outputs printed. Even I made break point where the print statements are
there, dint work :(

*Breakpoint 1 at 0x7f65146cc2f0: file
/home/john/radio/default/src/gr-ieee-80211/lib/test_cf_impl.cc, line 63.*
*(gdb) c*
*Continuing.*
*[New Thread 0x7f650de3b700 (LWP 6300)]*
*[New Thread 0x7f650d63a700 (LWP 6301)]*
*[New Thread 0x7f650ce39700 (LWP 6302)]*
*[New Thread 0x7f64fc83b700 (LWP 6303)]*
*[New Thread 0x7f64fc03a700 (LWP 6304)]*
*[New Thread 0x7f64fb308700 (LWP 6306)]*
*[New Thread 0x7f64fab07700 (LWP 6307)]*
*[New Thread 0x7f64fa306700 (LWP 6308)]*
*[New Thread 0x7f64f9b05700 (LWP 6309)]*
*[New Thread 0x7f64f9304700 (LWP 6310)]*
*[Switching to Thread 0x7f64fab07700 (LWP 6307)]*

*Thread 15 "test_cf3" hit Breakpoint 1, gr::ieee802_11::test_cf_impl::work
(this=0x2023650, noutput_items=8184, *
*    input_items=std::vector of length 1, capacity 1 = {...}, *
*    output_items=std::vector of length 1, capacity 1 = {...})*
*    at /home/john/radio/default/src/gr-ieee-80211/lib/test_cf_impl.cc:63*
*warning: Source file is more recent than executable.*
*63     {*
*(gdb) n*
*[Thread 0x7f64fc03a700 (LWP 6304) exited]*
*68       volk_32fc_magnitude_squared_32f(out, in, noi);*
*(gdb) n*
*63     {*

What obvious mistake I am doing ? Isn't this the right way to use
GR_LOG_DEBUGGER

I was also not able to see the print outputs during my make test.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to