2

マネージド アプリケーションのクラッシュ ダンプを開き、スタック トレースを取得するプロセスを自動化しようとしています。Windgb は時々動作しますが、ダンプを処理するマシンがダンプが発生したマシンと実質的に同一でない限り、正しいバージョンの sos.dll をロードするのは悪夢です。

一方、Visual Studio は単純に作業を行います。ダンプを開き、すぐに表示されるウィンドウに移動して、次のように入力します。

.load \\<machine where dump occured>\c\windows\microsoft.net\framework\v2.0.50727\sos.dll

!clrtsack 

そして、すべてがうまく機能します。

Visual Studio でこのプロセスをスクリプト化できますか? そうでない場合、windbg と同じ Visual Studio で使用されるバックエンド デバッガーはありますか?

4

1 に答える 1

1

コマンドに完全なパスを渡す代わりに、代わりにコマンド.loadを使用して.loadby、DLL の場所に関するヒントを WinDbg に与えることができます。
このコマンドは、次の 2 つの引数を受け取ります。

  1. ロードする DLL の名前 (この場合はSOS)
  2. 最初に要求された DLL と同じフォルダーに含まれている必要がある、既に読み込まれている DLL の名前 (この場合、clr.Net v4.0 またはそれmscorwks以前のバージョンの場合)。

例えば:

// v4.0
>.loadby sos clr

// earlier versions
>.loadby sos mscorwks
于 2010-09-14T21:57:48.533 に答える