Hi Vasil,
thanks for the information. I am using Linux Mint 20.2 Uma and GNU Radio
3.8.3.1. I don't know yet how to install the debug symbols but perhaps
this is not necessary.
As I have found out, the downstream blocks expect tags that I don't send
and that is the reason why my flowgraph fails (see Federicos post
earlier today, he gave me a hint). I have already added one missing tag
and there is no more -11 :-)
Kind regards,
Ralf
Am 10.12.2021 um 17:59 schrieb Vasil Velichkov:
Hi Ralf,
Thread 27 "dvbt_symbol_inn" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc5ffb700 (LWP 1924)]
0x00007fffe61a2e0d in ?? () from /lib/x86_64-linux-gnu/libgnuradio-dtv.so.3.8.3
(gdb) bt
#0 0x00007fffe61a2e0d in () at /lib/x86_64-linux-gnu/libgnuradio-dtv.so.3.8.3
#1 0x00007ffff0f40d13 in gr::block_executor::run_one_iteration() () at
/lib/x86_64-linux-gnu/libgnuradio-runtime.so.3.8.3
#2 0x00007ffff0f95eaa in
gr::tpb_thread_body::tpb_thread_body(boost::shared_ptr<gr::block>,
boost::shared_ptr<boost::barrier>, int) () at
/lib/x86_64-linux-gnu/libgnuradio-runtime.so.3.8.3
#3 0x00007ffff0f84928 in () at
/lib/x86_64-linux-gnu/libgnuradio-runtime.so.3.8.3
It seems you are using Debian/Ubuntu (or some derivative) and you are missing
the debug info symbols for libgnuradio-runtime.so and libgnuradio-dtv.so
libraries. I'm not a Debian/Ubuntu user and I'm not very familiar how to
install the missing symbols. Read the following pages, install the debug
symbols and then repeat the same procedure and you will get some more
meaningful information like .cpp/.h file names and line numbers.
https://wiki.ubuntu.com/Debug%20Symbol%20Packages
https://wiki.ubuntu.com/DebuggingProgramCrash
https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols
Also tell us which Linux distribution do you use and which version? How did you
install gnuradio and the exact version?
Regards,
Vasil
On 10/12/2021 14.51, Ralf Gorholt wrote:
Hi Vasil,
thank you for your message. As I have no experience with GNU Radio and
command line debugging, your hints may be really helpful. I have
attached the gdb and valgrind output to this email.
In the gdb output thread 27 that receives the SIGSEGV is the DVB-T
"Symbol Inner Interleaver" that comes with GNU Radio, not one of my blocks.
As far as valgrind is concerned, it tells me for my block OFDM
Synchronization: "Conditional jump or move depends on uninitialised
value(s)". I will see if I can find out which variable is uninitialized
and how I can get rid of this problem.
Kind regards,
Ralf
Am 10.12.2021 um 12:35 schrieb Vasil Velichkov:
Hi Ralf,
On 10/12/2021 11.52, Ralf Gorholt wrote:
Unfortunately, when I deactivate the original flowgraph, it does no
longer work and I get a -11 return code.
The "-11" value means that you got a segmentation fault and the process was
kill with signal 11 (SIGSEGV)
https://docs.python.org/3.8/library/subprocess.html#subprocess.CalledProcessError.returncode
https://www.man7.org/linux/man-pages/man7/signal.7.html
In my opinion the easiest way to debug segfaults is to run the flowgraph under
gdb and valgrind. Open your flowgraph in the gnuradio-companion and then
Generate (F5) but do not Execute (F6). The open a terminal, go where the
flowgraph python (.py) file was generated and execute
gdb -ex run --args /usr/bin/python3 test.py
and then when it stops execute `bt` command in the gdb's shell and provide the
full output. To run it under valgrind execute
valgrind --tool=memcheck /usr/bin/python3 test.py
Adjust the path to your python interpreter and its version if needed.
Regards,
Vasil