问题背景:我采用CATIA CAA编写了一个界面的小程序,功能运行成功,但是每次运行完,关闭CATIA的时候,都会弹出这个对话框,这个对话框的意思是CATIA运行崩溃,点击确定后,CATIA就会意外关闭。
问题排查:
最开始根据经验,怀疑析构函数是不是有问题,析构函数如下,反复看,应该是没有问题的。
考虑了一下,进行单步调试,尝试定位到问题,但是仍然失败,因为这个是程序退出的时候发生的,调试不到。
问题定位与解决:
经过与大神请教,大神告诉了我一个方法,找到CATIA的出错日志,如下图所示,打开日志
拖动滚动条,到日志文档的末尾,之后打开搜索,搜索查找:“cpp:”,找到cgrexportermdlcmd.cpp:434这句话,查看这个源文件的434行有无问题,如果无问题,继续向上搜索
最终,我找到了cgrexportermdlcmd.cpp:590,这一行代码有问题,我尝试释放一个当前正在打开的文档指针,导致程序内存出错。
pDoc->Release();
pDoc = NULL;
希望这篇文章对你有帮助,感谢远程帮助我、教给我这个方法的大神朋友!