我在核心上有以下堆栈跟踪:
#1 0x..... in raise()
#2 0x..... in abort()
#3 0x..... in xehInterpretSavedSigaction()
#4 0x..... in xehExceptionHandler()
#5 <signal handler called>
#6 0x..... in QMap<int, myClass#1>::freeData(QMapData*) ()
#7 0x..... in myClass#2::myClass#2Method()
#8 0x..... so on and so forth
使用 QMap 的代码如下所示:
foreach (myClass::sturct1 conn, myClass3->getMap())
{
if (conn == x)
{
return conn;
}
}
foreach 行是使用 getter 方法检索 QMap 的地方。有人知道 QMap::freeData() 做什么吗?我在互联网上任何地方都能找到的唯一参考资料是实际的 QMap.h 源。看起来该方法在 QMap 析构函数中使用。方法名称让我相信它正在释放数据。无论如何,我想如果我对 freeData() 有更多的了解,我可能能够弄清楚并修复这个核心。