1

特定の機能を実行しているときに、プログラムが応答しなくなります。応答しなくなった理由を知るために、リアルタイムで何をしているのかを確認するにはどうすればよいですか?

クラッシュではないので、残念ながら理由はわかりません。それが何をしているのかを知るにはどうすればよいですか?

私に何ができる?実際のソース コードがある場合とない場合の両方で、この種の状況に適したプログラムは何ですか?

4

3 に答える 3

5

デバッガーで実行し、スローダウンが発生したときに実行を中断する必要があります。それが止まる場所は、おそらくあなたの問題がある場所です。複数回起動して停止すると、最も頻繁に実行が中断する場所が確実にわかります。

または、プロファイラーを使用します。どちらのプログラムもソースなしで動作しますが、ソース シンボルとデバッグ シンボルを使用する方がはるかに簡単です (実行しているプラ​​ットフォームに関するかなりのアセンブラーの知識は必要ありません)。

于 2012-06-07T17:06:22.377 に答える
0

Sysinternals の Process Monitor をご覧くださいhttp://technet.microsoft.com/en-us/sysinternals/bb896645

于 2012-06-07T17:13:14.070 に答える
0

A. ソースコード付き

Visual Studio をプロセスにアタッチして、ブレークを押すことができます。その後、コールスタックを見てください。ti がクラッシュしていない場合、潜在的に再帰はありません。だからあなたはそれが何をしているのかを見るべきです。

マルチスレッド アプリケーションの場合は、スレッドを切り替えてコール スタックを監視します。

B. ソースコードがなければ、 これは難しいと思います。見つけることができる唯一のものは、外部分析です。Wireshark を使用してネットワーク アクティビティを監視したり、Sysinternals (procmon.exe) の Process Monitor を使用してレジストリやファイルへのアクセスを確認したりします。

于 2012-06-07T17:26:12.330 に答える