我有一個程序在運行2-4小時後隨機崩潰(看似)。我正在使用Visual Studio Pro 2008的C++進行開發。由於崩潰發生在注入的DLL(注入第三方軟件的內存空間的內存空間),所以我無法使用Visual Studio Debugger,但我可以得到一些輸出控制檯使用iter-process通信(我正在使用郵箱)。 所以這裏有一個問題:調試這個問題的最好方法是什麼?是否有第三方軟件/附加軟件/調試器可以告訴我什麼變量是NULL導致崩潰?隨機崩潰調試
感謝您的幫助。
我有一個程序在運行2-4小時後隨機崩潰(看似)。我正在使用Visual Studio Pro 2008的C++進行開發。由於崩潰發生在注入的DLL(注入第三方軟件的內存空間的內存空間),所以我無法使用Visual Studio Debugger,但我可以得到一些輸出控制檯使用iter-process通信(我正在使用郵箱)。 所以這裏有一個問題:調試這個問題的最好方法是什麼?是否有第三方軟件/附加軟件/調試器可以告訴我什麼變量是NULL導致崩潰?隨機崩潰調試
感謝您的幫助。
嘗試運行Windbg下的程序。發生崩潰時,您可能會得到一些關於原因的具體信息。您可以啓動承載您的dll的第三方進程,然後將windbg調試器附加到進程。發生崩潰時,windbg可能會停止並報告某種類型的異常。然後,您可以使用各種命令的WinDbg看線程堆棧等
天兒真好,
你的問題襯托兩個報警我。
* a memory leak smell which could be verified by running the same set of input and seeing if the crash happens at about the same elapsed time, and
* a specific test case that is tickling something in your third party library. You could do a binary chop on your input data to track down what's triggering this. I just had to do this to track down which request out of over two hundred thousand was triggering a memory leak in a custom Apache module. Divide and conquer. Divide and conquer. Divide and conquer. Repeat and rinse.
HTH
「Avahappy,
除非你有符號的DLL的調試版本,你可能是出於運氣,什麼比第三方代碼暴跌更令人沮喪! – 2009-08-13 19:23:19
它實際上是我自己注入的DLL。因此,我有權訪問源 – 2009-08-13 19:29:36
自從我的回答被接受後,出於隨機的好奇心,windbg停止了內存損壞還是內存不足或某些其他資源異常? – 2009-10-15 03:01:16