如何调试没有源代码参考的堆栈跟踪崩溃应用程序?

3

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

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

问题在于没有堆栈跟踪到源代码,只有NativeWindow.Callback之类的本机代码位于堆栈跟踪底部。

是否有任何工具可以用来调试这种问题?

1个回答

4
如果您能容忍的话,请添加大量日志记录。猜测代码发生的位置,并在进入Foo退出Foo日志中加上括号。如果在崩溃时只看到其中一个而不是另一个,那么就知道它在其中某个位置,然后按需要在函数中进行二分(或n-ary)搜索。在某种程度上,您需要在身后收起地毯,以保持日志大小,但只要可以合理经常地产生崩溃,您应该能够通过这种方式零散地解决它。
我有一个应用程序,我已经这样做了(在其预期环境中我无法进行调试),并发现它非常有效。此外,说你已经使用超过一百万行的日志文件工作(日志过多,测试用例太大 <g>),也很令人印象深刻。

1
是的,分而治之是你的朋友。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接