|
1
5
您甚至可以为发布版本生成生成符号文件。执行此操作,运行程序,附加调试器,关闭调试器,然后在调试器中查看崩溃的原因。 |
|
2
1
您似乎有读取空指针的内容—永远都不好。
我不知道你在哪个站台。根据Linux,你可以考虑使用
除了调试信息的存在或不存在外,发布版本与调试版本有什么不同? 您能否构建包含调试信息的静态链接代码?您能获得静态链接代码的调试版本吗? |
|
3
1
但是,可能不是您的代码出了问题。需要注意的一件事是,我们在AIX上发现了这个问题,即使您运行的是Windows,它也可能类似。 我们有一个第三方库,它动态加载另一个共享库,该共享库在其初始化例程中设置了一个atexit函数,以便在进程退出时调用。
这显示为访问冲突 从main()返回后 所以,如果这是发生在你身上的事情,几乎可以肯定这是同样的事情。C RTL启动代码将遍历atexit列表并调用其每个函数,无论您对它们做了什么。 当然,如果它在main()退出之前崩溃,那么这是一个没有意义的问题。 有一件事你可以考虑(我们在跟踪和修复一个特别棘手的bug的成本/效益分析之后,在一个事实上做到了这一点):把调试版本作为产品发送出去。如果它没有崩溃,这可能是一个快速修复,让产品在那里,而你的工作更可接受的解决方案在您的休闲。 |