discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Segmentation fault when adding a variable...


From: Johannes Demel
Subject: Re: Segmentation fault when adding a variable...
Date: Fri, 31 Mar 2023 14:43:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0

Hi Niklas,

since gdb starts quite a few threads, I suggest you extract the part that segfaults into a script that's as small as possible. I assume you run a flowgraph in GRC. Just take the generated `.py` file and reduce it.
A simple unittest would be an alternative approach.
Which GR version do you use exactly?
How did you install GR?
You might want to check which pybind11 version was used to build GR and which version was picked up by CMake for your OOT module. This is just a wild guess. It's beneficial to start using git as early as possible. Even if you just run into situations like: "It works this morning, what did I break?".

I assume your "certain variable" is your customized `phy_header`. Is this correct?

Cheers
Johannes

PS: Instead of absolute paths like `#include "/home/inets/..."` you might want to figure out how to configure your system such that it picks up the correct prefixes.

On 31.03.23 13:42, Beckmann, Niklas wrote:
Dear all,


I am currently facing a problem, where gunradio segfaults, when I add a certain variable into the flowchart.

I created a little apache server, to share the according code of my module, where the segfault happens (/include & /lib cpp files):

http://nbws.hopto.org/ <http://nbws.hopto.org/>


Maybe there is something wrong with the code?


When I do a gdb backtrace, I get the following:

[New Thread 0x7fffe0c4f700 (LWP 172481)]
[Thread 0x7ffff087c700 (LWP 172476) exited]
[Thread 0x7fffdbfff700 (LWP 172479) exited]
[New Thread 0x7fffdbfff700 (LWP 172482)]
[New Thread 0x7ffff087c700 (LWP 172483)]
[Thread 0x7fffdbfff700 (LWP 172482) exited]
[Thread 0x7ffff087c700 (LWP 172483) exited]
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007fffdaa52c6b in pybind11::detail::same_type (rhs=..., lhs=...)
     at /usr/include/pybind11/detail/internals.h:55
55 inline bool same_type(const std::type_info &lhs, const std::type_info &rhs) { return lhs == rhs; }
(gdb) backtrace
#0  0x00007fffdaa52c6b in pybind11::detail::same_type(std::type_info const&, std::type_info const&) (rhs=..., lhs=...) at /usr/include/pybind11/detail/internals.h:55 #1 pybind11::detail::type_caster_base<gr::digital::packet_header_default>::src_and_type(gr::digital::packet_header_default const*)
     (src=0x7fffe3519cf0 <vtable for gr:mymodule::phy_header_impl+96>)
     at /usr/include/pybind11/cast.h:852
#2 pybind11::detail::type_caster_base<gr::digital::packet_header_default>::cast_holder(gr::digital::packet_header_default const*, void const*)     (holder=0x7fffffff7cd0, src=0x7fffe3519cf0 <vtable for gr::mymodule::phy_header_impl+96>) at /usr/include/pybind11/cast.h:877 #3 pybind11::detail::copyable_holder_caster<gr::digital::packet_header_default, std::shared_ptr<gr::digital::packet_header_default> >::cast(std::shared_ptr<gr::digital::packet_header_default> const&, pybind11::return_value_policy, pybind11::handle)     (src=std::shared_ptr<gr::digital::packet_header_default> (use count 25760825, weak count -1) = {...}) at /usr/include/pybind11/cast.h:1466 #4 pybind11::cpp_function::initialize<pybind11::cpp_function::initialize<std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default, , pybind11::name, pybind11::is_method, pybind11::sibling, char const*>(std::shared_ptr<gr::digital::packet_header_default> (gr::digital::packet_header_default::*)(), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(gr::digital::packet_header_default*)#1}, std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default*, pybind11::name, pybind11::is_method, pybind11::sibling, char const*>(pybind11::cpp_function::initialize<std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default, , pybind11::name,--Type <RET> for more, q to quit, c --Type <RET> for more, q to quit, c to continue without paging--  pybind11::is_method, pybind11::sibling, char const*>(std::shared_ptr<gr::digital::packet_header_default> (gr::digital::packet_header_default::*)(), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(gr::digital::packet_header_default*)#1}&&, std::shared_ptr<gr::digital::packet_header_default> (*)(gr::digital::packet_header_default*), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(pybind11::detail::function_call&)#3}::operator()(pybind11::detail::function_call) const (call=..., this=0x0)
     at /usr/include/pybind11/pybind11.h:159
#5 pybind11::cpp_function::initialize<pybind11::cpp_function::initialize<std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default, , pybind11::name, pybind11::is_method, pybind11::sibling, char const*>(std::shared_ptr<gr::digital::packet_header_default> (gr::digital::packet_header_default::*)(), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(gr::digital::packet_header_default*)#1}, std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default*, pybind11::name, pybind11::is_method, pybind11::sibling, char const*>(pybind11::cpp_function::initialize<std::shared_ptr<gr::digital::packet_header_default>, gr::digital::packet_header_default, , pybind11::name, pybind11::is_method, pybind11::sibling, char const*>(std::shared_ptr<gr::digital::packet_header_default> (gr::digital::packet_header_default::*)(), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(gr::digital::packet_header_default*)#1}&&, std::shared_ptr<gr::digital::packet_header_default> (*)(gr::digital::packet_header_default*), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, char const* const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call) () at /usr/include/pybind11/pybind11.h:137 #6  0x00007fffda94bfcf in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) (self=<optimized out>, args_in=0x7fffd952a1f0, kwargs_in=0x0) at /usr/include/pybind11/pybind11.h:624
#7  0x00000000005f6489 in PyCFunction_Call ()
#8  0x00000000005f7056 in _PyObject_MakeTpCall ()
#9  0x000000000050b993 in  ()
#10 0x0000000000570ac2 in _PyEval_EvalFrameDefault ()
#11 0x0000000000569cea in _PyEval_EvalCodeWithName ()
#12 0x000000000068e7b7 in PyEval_EvalCode ()
#13 0x0000000000680001 in  ()
#14 0x000000000068007f in  ()
#15 0x00000000006801cf in PyRun_StringFlags ()
#16 0x000000000060138e in  ()
#17 0x00000000005c52f0 in  ()
#18 0x000000000056b9fd in _PyEval_EvalFrameDefault ()
#19 0x0000000000569cea in _PyEval_EvalCodeWithName ()
#20 0x00000000005f6a13 in _PyFunction_Vectorcall ()
#21 0x000000000056bbdf in _PyEval_EvalFrameDefault ()
#22 0x00000000005f6836 in _PyFunction_Vectorcall ()
#23 0x000000000056bbdf in _PyEval_EvalFrameDefault ()
#24 0x00000000005f6836 in _PyFunction_Vectorcall ()
#25 0x000000000056bbdf in _PyEval_EvalFrameDefault ()
#26 0x00000000005f6836 in _PyFunction_Vectorcall ()
#27 0x0000000000570ac2 in _PyEval_EvalFrameDefault ()
#28 0x00000000005f6836 in _PyFunction_Vectorcall ()
#29 0x000000000056bbdf in _PyEval_EvalFrameDefault ()
#30 0x0000000000569cea in _PyEval_EvalCodeWithName ()
#31 0x000000000050b2b0 in  ()
#32 0x0000000000570ac2 in _PyEval_EvalFrameDefault ()
#33 0x0000000000569cea in _PyEval_EvalCodeWithName ()
#34 0x00000000005f6a13 in _PyFunction_Vectorcall ()
#35 0x000000000050b23c in  ()
#36 0x00000000005f7807 in PyObject_CallObject ()
#37 0x00007ffff43bdf8e in  () at /usr/lib/python3/dist-packages/gi/_gi.cpython-38-x86_64-linux-gnu.so #38 0x00007ffff4200802 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff4214814 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff421f47d in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #41 0x00007ffff42200f3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007ffff2aa39b3 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007ffff2ab7677 in gtk_widget_send_focus_change () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007ffff2ab9760 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007ffff2ab99fa in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007ffff4203f03 in g_cclosure_marshal_VOID__OBJECTv () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#47 0x00007ffff4200a56 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#48 0x00007ffff421fb48 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0



I must admit, this looks a littlebit cryptic to me, as I am still a student...

Does anyone has an idea how to fix that?



I am very thankful for every help, because I am really running out of ideas at the moment :)

Best,

N






Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]