gr::CyberRadio::vita_udp_rx_impl::vita_udp_rx_impl() is calling gr::basic_block::message_port_register_out() with a bad argument most likely.
On Tue, Sep 14, 2021 at 2:40 PM Jim Melton <[email protected]> wrote: > As briefly discussed on IRC last night, I am trying to modify someone > else’s block to be more robust (detect or eliminate packet drops). In the > ctor, I call message_port_register_out() and it dumps core. The offending > call is here: > https://github.com/jwmelto/gr-cyberradio/blob/7b048a14f76b140f5cd3edd7d8dfa533e1f892a7/gr-CyberRadio/lib/vita_udp_rx_impl.cc#L427 > > > > The stack trace from the core is > > #0 0x00007ffff4b04973 in pmt::is_pair(boost::shared_ptr<pmt::pmt_base> > const&) () from /usr/local/lib64/libgnuradio-pmt.so.3.8.2 > > #1 0x00007ffff4b07328 in pmt::assv(boost::shared_ptr<pmt::pmt_base>, > boost::shared_ptr<pmt::pmt_base>) () from > /usr/local/lib64/libgnuradio-pmt.so.3.8.2 > > #2 0x00007ffff4b075fd in > pmt::dict_has_key(boost::shared_ptr<pmt::pmt_base> const&, > boost::shared_ptr<pmt::pmt_base> const&) () from > /usr/local/lib64/libgnuradio-pmt.so.3.8.2 > > #3 0x00007ffff73b72e2 in > gr::basic_block::message_port_register_out(boost::shared_ptr<pmt::pmt_base>) > () from /usr/local/lib64/libgnuradio-runtime.so.3.8.2 > > #4 0x00007ffff7b58d73 in > gr::CyberRadio::vita_udp_rx_impl::vita_udp_rx_impl (this=0x622800, cfg=..., > __in_chrg=<optimized out>, __vtt_parm=<optimized out>) > > at /tmp/gr-cyberradio/gr-CyberRadio/lib/vita_udp_rx_impl.cc:427 > > #5 0x00007ffff7b56cb3 in gr::CyberRadio::vita_udp_rx::make (cfg=...) at > /tmp/gr-cyberradio/gr-CyberRadio/lib/vita_udp_rx_impl.cc:111 > > #6 0x000000000040c51d in main (argc=1, argv=0x7fffffffdf18) at > /usr/src/project/main.cc:23 > > > > My minimal test program is here: > > #include <CyberRadio/vita_udp_rx.h> > > #include <gnuradio/top_block.h> > > #include <gnuradio/blocks/file_sink.h> > > > > int main(int argc, char** argv) > > { > > gr::CyberRadio::vita_udp_rx::Cfg cfg; > > > > cfg.src_ip = "192.168.110.10"; > > cfg.port = 8010; > > cfg.header_byte_offset = 48; > > cfg.samples_per_packet = 1024; > > cfg.bytes_per_packet = 4152; > > cfg.swap_bytes = true; > > cfg.swap_iq = false; > > cfg.tag_packets = true; > > cfg.uses_v49_1 = false; > > > > cfg.debug = true; > > > > auto v49 = gr::CyberRadio::vita_udp_rx::make(cfg); // core dump > > auto sink = gr::blocks::file_sink::make(sizeof(gr_complex), "test.dat"); > > > > auto top = gr::make_top_block("Test"); > > top->connect(v49, 0, sink, 0); > > > > return 0; > > } > > > > According to all that I know, this should work. It clearly does not. I > would appreciate any pointers on how to get past this roadblock. > > --- > > *Jim Melton* > > > CONFIDENTIALITY NOTICE - SNC EMAIL: This email and any attachments are > confidential, may contain proprietary, protected, or export controlled > information, and are intended for the use of the intended recipients only. > Any review, reliance, distribution, disclosure, or forwarding of this email > and/or attachments outside of Sierra Nevada Corporation (SNC) without > express written approval of the sender, except to the extent required to > further properly approved SNC business purposes, is strictly prohibited. If > you are not the intended recipient of this email, please notify the sender > immediately, and delete all copies without reading, printing, or saving in > any manner. --- Thank You. >
