I have a program where std::list is used.
The program uses threads which act on the std::list as producers and consumers.
When a message is dealt with by the consumer, it is removed from the list using pop_front(). But, during pop_front, there is a core dump.
The gdb trace is as below. could you help getting me some insights into this issue?
(gdb) bt full
0 0xf7531d7b in std::_List_node_base::unhook () from /usr/lib/libstdc++.so.6
No symbol table info available.
1 0x0805c600 in std::list ::_M_erase (this=0x806b08c,
__position={_M_node = 0x8075308})
at /opt/target/usr/include/c++/4.2.0/bits/stl_list.h:1169
__n = (class std::_List_node<myMsg> *) 0x0
2 0x0805c6af in std::list ::pop_front (this=0x806b08c)
at /opt/target/usr/include/c++/4.2.0/bits/stl_list.h:750
No locals.
3 0x0805afb6 in Base::run () at ../../src/Base.cc:342
nSentBytes = 130
tmpnm = {_vptr.myMsg = 0x80652c0,
m_msg = 0x8075140 "{0130,MSG_TYPE=ND_FUNCTION,ORG_PNAME=P01vm01Ax,FUNCTION=LOG,PARAM_CNT=3,DATETIME=06/12/2010 02:59:26.187,LOGNAME=N,ENTRY=Debug 0 }", m_from = 0x8096ee0 "P01vm01Ax", m_to = 0x0,
static m_logged = false, static m_pLogMutex = {_data = {_lock = 0, __count = 0, __owner = 0,
__kind = 0, _nusers = 0, {_spins = 0, _list = {_next = 0x0}}},
__size = '\0' , __align = 0}}
newMsg = {_vptr.myMsg = 0x80652c0, m_msg = 0x0, m_from = 0x0, m_to = 0x0,
static m_logged = false, static m_pLogMutex = {_data = {_lock = 0, __count = 0, __owner = 0,
__kind = 0, _nusers = 0, {_spins = 0, _list = {_next = 0x0}}},
__size = '\0' , __align = 0}}
strBuffer = "{0440,MSG_TYPE=NG_FUNCTION,ORG_PNAME=mach01./opt/abc/VAvsk/abc/comp/DML/gendrs.pl.17560,DST_PNAME=P01vm01Ax,FUNCTION=DRS_REPLICATE,CAUSE_DML_ERROR=N,CORRUPT_DATA=N,CORRUPT_HEADER=N,DEBUG=Y,EXTENDED_RU"...
fds = {{fd = 5, events = 1, revents = 0}}
retval = 0
iWaitTime = 0
4 0x0805b277 in startRun () at ../../src/Base.cc:454
No locals.
5 0xf7effe7b in start_thread () from /lib/libpthread.so.0
No symbol table info available.
6 0xf744d82e in clone () from /lib/libc.so.6
No symbol table info available.