我的程序在執行特定功能時變得無法響應。如何知道它爲什麼會變得無法響應?如何確定當程序變得無法響應時正在做什麼?
它不會崩潰,所以我不幸看到原因。我如何知道它在做什麼?
我該怎麼辦?在有和沒有實際源代碼的情況下,哪種程序適合這種情況?
我的程序在執行特定功能時變得無法響應。如何知道它爲什麼會變得無法響應?如何確定當程序變得無法響應時正在做什麼?
它不會崩潰,所以我不幸看到原因。我如何知道它在做什麼?
我該怎麼辦?在有和沒有實際源代碼的情況下,哪種程序適合這種情況?
您需要在調試器中運行,然後在發生減速時中斷執行。它停止的地方,很可能是你的問題所在。如果你多次啓動和停止,那麼執行最經常的地方可能肯定會說。
或使用分析器。任何一個程序都可以在沒有源代碼的情況下工作,雖然使用源代碼和調試符號很容易,但不需要在您運行的平臺上有相當多的彙編知識技能。)
看一看在進程監視器Sysinternals公司http://technet.microsoft.com/en-us/sysinternals/bb896645
A.與源代碼
您可以將Visual Studio的一個過程,然後按破。之後再看看調用堆棧。如果ti沒有崩潰它的可能沒有遞歸。所以你應該看看它在做什麼。
如果它是線程之間的多線程應用程序切換並觀察調用堆棧。
B.沒有源代碼 我認爲這很難。唯一可以找到的是外部分析。像Wireshark觀看網絡活動或從Sysinternals進程監視器(procmon.exe)來查看註冊表或文件訪問。