我有一个运行我的C ++应用程序时遇到问题的用户收集的转储文件,我正在试图弄清楚应用程序是否已崩溃。从我在转储文件中看到的,没有异常或错误指示崩溃,也没有任何死锁线程竞争互斥锁或其他同步对象。
创建转储的主线程的程序位置是对虚函数的调用,但对象的vtable是正确的并且指向正确的函数,例如,代码是
FindIt = m_EntityList[m_ListPos]->GetChainageOffset(X,Y,Chainage,Offset);
并查看我看到的变量
我是否正确地认为这似乎不是页面错误/非法取消引用或我在这里遗漏了什么?我检查了线程池中的所有其他线程,它们处于非活动状态。如果发生崩溃,转储文件是否总是有异常代码和错误信息?
答案 0 :(得分:0)
我怀疑已取消引用已释放的对象。 这可能是您的类对象或有问题的方法中的某个对象。使用delete / free后,是否将每个指针设置为NULL?
//编辑: 这应该是评论而不是答案,但我点击了不正确的按钮(手机应用程序)