hey, i made some code to show information from the data units; some in the c++ (ldu1.h, ldu1.cc, etc) and some in the python (traffic panel). now when i leave it running for a somewhat extending period of time op25 dies with what i think is some sort of memory error:
*** glibc detected *** /usr/bin/python: free(): invalid pointer: 0xb7698434 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb7567ee2] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb696eadf] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZNSs4_Rep10_M_destroyERKSaIcE+0x1b)[0xb69d67bb] /usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN19snapshot_du_handler6handleEN5boost10shared_ptrI9data_unitEE+0x236)[0xb2ce6de6] /usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN17data_unit_handler6handleEN5boost10shared_ptrI9data_unitEE+0x54)[0xb2ce5c74] /usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN16voice_du_handler6handleEN5boost10shared_ptrI9data_unitEE+0x66)[0xb2ce8116] /usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN15op25_decoder_bf14receive_symbolEh+0x18c)[0xb2cffbec] /usr/local/lib/python2.7/dist-packages/gnuradio/_op25.so(_ZN15op25_decoder_bf12general_workEiRSt6vectorIiSaIiEERS0_IPKvSaIS5_EERS0_IPvSaIS9_EE+0x4b)[0xb2cffddb] /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0(_ZN17gr_block_executor17run_one_iterationEv+0xa09)[0xb6aa5529] /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0(_ZN18gr_tpb_thread_bodyC1EN5boost10shared_ptrI8gr_blockEEi+0x4b1)[0xb6ac7aa1] /usr/local/lib/libgnuradio-core-3.6.3.1.so.0.0.0(+0xb335b)[0xb6ac235b] /usr/local/lib/libgruel-3.6.3.1.so.0.0.0(+0x32e46)[0xb6c6ae46] /usr/lib/libboost_thread.so.1.49.0(+0xb96c)[0xb68f096c] /lib/i386-linux-gnu/libpthread.so.0(+0x6d4c)[0xb76c5d4c] /lib/i386-linux-gnu/libc.so.6(clone+0x5e)[0xb75e0dde] ======= Memory map: ========
i omitted the huge memory map. i have no idea what to do with this sort of back trace. any guidance will be much appreciated.
Cheers, Matt
Ok, so its telling you that there is a bad pointer being passed to free. Things you can do: * Set "ulimit -c unlimited" in the shell before running the program. That way you get a "core" file when the program crashes and can run the debugger on it to find out why. * Run valgrind on the executable. When the program finishes it will produce a summary of all memory errors. Hope that helps. Stevie
On 08/08/2013 03:56 AM, Steve Glass wrote:
Ok, so its telling you that there is a bad pointer being passed to free. Things you can do: * Set "ulimit -c unlimited" in the shell before running the program. That way you get a "core" file when the program crashes and can run the debugger on it to find out why. * Run valgrind on the executable. When the program finishes it will produce a summary of all memory errors. Hope that helps. Stevie
Hey, Thanks. So I am running op25 with valgrind. i saw a lot of complaints while op25 started and it is running now. it may take some time, maybe hours or maybe days, for op25 to die with this memory problem. so i should wait for it to die right?
On 08/08/2013 03:56 AM, Steve Glass wrote:
Ok, so its telling you that there is a bad pointer being passed to free. Things you can do: * Set "ulimit -c unlimited" in the shell before running the program. That way you get a "core" file when the program crashes and can run the debugger on it to find out why. * Run valgrind on the executable. When the program finishes it will produce a summary of all memory errors. Hope that helps. Stevie
op25 finally died again. all i got out of gdb was:
Core was generated by `/usr/bin/python -u /home/matt/OP25_GRC/op25_grc.py'. Program terminated with signal 11, Segmentation fault. #0 0x081000bb in ?? () (gdb) i stack #0 0x081000bb in ?? () #1 0x00000000 in ?? () (gdb)
valgrind printed a bunch of complaints upon starting the grc but i was unable to get anything out of that shell after the crash other than the same old backtrace and memory map. there was no command prompt so something had to still be running; perhaps valgrind?
any ideas about the above gdb output? or how to get more out of valgrind?
Thanks a bunch