[reSIProcate] DialogUsageManager.cxx - assert
This section of code (at bottom) in DialogUsageManager is occasionally
aborting my application.
I entered the core dump with gdb and got the following:
(gdb) bt
#0 0xb73067a7 in raise () from /lib/tls/libc.so.6
#1 0xb73081a9 in abort () from /lib/tls/libc.so.6
#2 0xb72ff755 in __assert_fail () from /lib/tls/libc.so.6
#3 0xb7e774ad in resip::DialogUsageManager::incomingProcess
(this=0x807f050,
msg={_M_ptr = 0x80891d0}) at DialogUsageManager.cxx:1104
#4 0xb7e771e3 in resip::DialogUsageManager::internalProcess
(this=0x807f050,
msg={_M_ptr = 0x0}) at DialogUsageManager.cxx:1071
(gdb) print msg
$1 = {_M_ptr = 0x80891d0}
(gdb) print msg._M_ptr
$2 = (resip::Message *) 0x80891d0
Does anyone have any ideas? Should this be handled more gracefully than
calling assert?
if (tid != Data::Empty && !mIncomingFeatureList.empty())
{
FeatureChainMap::iterator it;
//efficiently find or create FeatureChain, should prob. be a
utility template
{
FeatureChainMap::iterator lb =
mIncomingFeatureChainMap.lower_bound(tid);
if (lb != mIncomingFeatureChainMap.end() &&
!(mIncomingFeatureChainMap.key_comp()(tid, lb->first)))
{
it = lb;
}
else
{
assert(dynamic_cast<SipMessage*>(msg.get()));
it = mIncomingFeatureChainMap.insert(lb,
FeatureChainMap::value_type(tid, new DumFeatureChain(*this,
mIncomingFeatureList, *mIncomingTarget)));
}
}