2011-09-25 5 views
6

実行するたびにスタックとヒープの内容を見ることはできますか?私はそれが.Netのメモリ割り当てと割り当て解除についての明確な考えを示すので、それを見たいと思っています。あなたの質問に答えてくれる文書やリンクがあれば、あなたの質問に答えてください。C#.NetでHeap&Stackのオブジェクトを見る方法

+1

これは、データの*ロット*であり、それほど多くのことを伝えるものではありません。 (あるいはもっと悪いことに、あなたが見た20行のゴミを一切収集しないと不平を言ってくるだろう)。メモリ割り当てとガベージコレクションに疑問がある場合は、質問をしたり、高いレベルの説明を求めると、物事をクリアする。 – delnan

+0

確かに、私は間違いなく今これを行うでしょう – funsukvangdu

答えて

2

SOSまたはPssCorは、横に沿って開始するのに適しています。WinDbg

これを整理したら、 WinDbgをプロセスにアタッチし、デバッガエクステンションをロードします。たとえば:

.load C:\pathtoextensions\psscor4.dll 

はその後、あなたは!dumpheap!dumpstackコマンドを発行することができます。

これらのコマンドの両方の出力は非常にrawです。 !dumpheap -statは、ヒープの「統計的」概要を提供します。タイプ、割り当てられた数、およびすべての割り当ての合計バイト数。

これは簡単ではありません。これまでにWinDbgを使用していないのであれば、WinDbgで十分な練習を受けるのに時間がかかるでしょう。

!bpmdを使用してメソッドにブレークポイントを設定し、上記のコマンドを使用してpコマンドを使用してステップオーバーし、コマンドを再実行します。

ANTS ProfilerまたはdotTraceのような他の商用ツールがありますが、いずれのツールでも多くの経験はありません。

開始したら、SOSまたはPsscorに関するより具体的な質問を(新)できます。

3

スタック:

var stackInfo = new StackTrace(); 

ヒープ?いいえ、プロファイラ、デバッガ、または適切なAPIを使用する必要があります。単純なタスクではありません。それを試して問題がある場合は、より具体的な質問をするのが最善です。

関連する問題