如何在没有堆栈跟踪引用源代码的情况下调试应用程序崩溃?

时间:2009-01-08 00:10:36

标签: debugging

http://support.microsoft.com/kb/953102

我们在圣诞节假期期间花了大约50个小时来识别这个问题,导致我们的关键业务生产应用程序随机崩溃。

问题是源代码没有堆栈跟踪,只有堆栈跟踪底部的NativeWindow.Callback等本机代码。

你会用来调试这类问题的任何工具吗?

1 个答案:

答案 0 :(得分:4)

如果您可以容忍,请添加大量日志记录。

猜测它发生的位置,并将该代码括在entered Fooexited Foo日志中。然后,如果你在崩溃中看到一个而不是另一个,你知道它在某处,所以开始二进制(或n-ary)搜索,根据需要潜入函数。在某种程度上,你需要卷起你后面的地毯以保持日志的大小,但只要经常合理地生成崩溃你就应该能够以这种方式归零。

我有一个应用程序,我已经完成了这个(我不能在它的预期环境中以任何其他方式调试它)并发现它是有效的,而且说你使用1M +行日志有点令人印象深刻文件(对于大量日志记录,以及对大型测试用例<g>