2
http://support.microsoft.com/kb/953102如何在没有堆栈跟踪引用源代码的情况下调试应用程序崩溃?
我们在圣诞假期花费了大约50个小时来识别这个问题,导致我们的商业关键生产应用程序随机崩溃。
的问题是,没有堆栈跟踪的源代码,堆栈跟踪的底部,只有本地代码一样NativeWindow.Callback。
任何工具,在那里,你会用来调试这样的问题?
http://support.microsoft.com/kb/953102如何在没有堆栈跟踪引用源代码的情况下调试应用程序崩溃?
我们在圣诞假期花费了大约50个小时来识别这个问题,导致我们的商业关键生产应用程序随机崩溃。
的问题是,没有堆栈跟踪的源代码,堆栈跟踪的底部,只有本地代码一样NativeWindow.Callback。
任何工具,在那里,你会用来调试这样的问题?
如果你能忍受它,添加大量的日志记录。
猜测它发生的位置,并将该代码括在entered Foo
和exited Foo
日志中。那么如果你在崩溃中看到一个而不是另一个,你就知道它在某个地方,所以根据需要启动一个二进制(或n-ary)搜索功能。在某种程度上,你需要卷起地毯后面的地毯,以保持木材的大小,但只要碰撞能够合理地产生,你应该能够以这种方式进行调整。
我有一个应用程序,我已经做到了这一点(我不能在任何其他方式调试它的目标环境),并发现它是有效的,也有点令人印象深刻的说你已经用1M +行日志文件(得多记录,也可以大测试用例<g>
)
没错,分而治之是你的朋友。 – plinth 2009-01-08 00:46:25