(gdb) bt
#0 0x00007fe68d0ea277 in raise () from /lib64/libc.so.6
#1 0x00007fe68d0eb968 in abort () from /lib64/libc.so.6
#2 0x00007fe68d12cd37 in __libc_message () from /lib64/libc.so.6
#3 0x00007fe68d135499 in _int_free () from /lib64/libc.so.6
#4 0x00007fe68e9cf247 in int_getAllData(char const*, unsigned short, unsigned short*, unsigned int*, double*, unsigned long*, unsigned int&, unsigned int&) ()
from /home/epics/devel/dante-1-0/lib/linux-x86_64/libXGL_DPP.so.1
#5 0x000000000059d5d4 in Dante::pollMCAMappingMode (this=this@entry=0x1a305f0) at ../dante.cpp:1298
#6 0x000000000059eef8 in Dante::acquisitionTask (this=0x1a305f0) at ../dante.cpp:1206
#7 0x0000000000eb423c in start_routine (arg=0x1a56010) at ../osi/os/posix/osdThread.c:412
#8 0x00007fe68e2f9e25 in start_thread () from /lib64/libpthread.so.0
#9 0x00007fe68d1b2bad in clone () from /lib64/libc.so.6
It appears that getAllData() in the libXGL_DPP.so library is calling _int_free(), and that is crashing. I don't understand this, and why does it only crash on the third spectrum?
This problem is easily reproduced in a version of DPP_Test.cpp which does a mapping run with 2048 channel spectra. Closing this issue and creating a new one.
The EPICS driver is crashing when calling getAllData for the third mca.
This is the code:
This is the output when it crashes:
This is the stack trace from gdb:
It appears that getAllData() in the libXGL_DPP.so library is calling _int_free(), and that is crashing. I don't understand this, and why does it only crash on the third spectrum?