4

Visual Studio 2005 で開発された C++ アプリケーションの完全なコール スタックを取得するにはどうすればよいですか? システム ライブラリのコードを含む完全なコール スタックが必要です。

Visual Studio で一部の設定を変更する必要がありますか? または、追加のソフトウェアをインストールする必要がありますか?

4

3 に答える 3

6
  1. すべてのプロジェクトの依存関係のデバッグ情報を取得します。これは、プロジェクト プロパティの [構成プロパティ -> C/C++ -> 一般] セクションで指定されます。

  2. メニューで、[ツール] -> [オプション] に移動し、[デバッグ] -> [シンボル] を選択します。

  3. Microsoft の無料シンボル サーバー「symsrv symsrv.dll c:\symbols* http://msdl.microsoft.com/downloads/symbols」を指す新しいシンボルの場所 (フォルダー アイコン) を追加します。

  4. 「キャッシュシンボル」フィールドにローカルの場所を入力して、常にインターネットにアクセスしないようにします。

于 2008-09-21T13:56:27.790 に答える
0

または、必要に応じて (Visual Studio がインストールされていないと仮定して)、Windows Debugging Toolsのコピーを取得し、インストールして、デバッガー (windbg.exe) 内からアプリを実行するか、既に実行中のアプリにアタッチします。

windbg[.exe] -pn program.exe
または
windbg[.exe] -p process_id

スタック トレースを監視するポイントでデバッガーを中断します (Ctrl+Break)。関心のあるスレッド (ほとんどの場合、実行のメイン スレッド) に切り替えます。

~0 秒

システム モジュールのシンボルを修正します (利用可能な場合は、おそらくアプリのシンボルも修正します)。

* アプリのシンボルを修正する
.sympath path_to_app_symbols
* デバッガーがシステム シンボルをダウンロードして保存する場所を構成する
.symfix+ path_where_system_symbols_will_be_stored
* デバッガーにシンボルを強制的にリロードさせる
.reload

コール スタック コマンドを発行します。

キロバイト
于 2008-10-01T19:41:29.053 に答える
0

Clay に同意しますが、Symbols Server の場合は、Microsoft の無料ダウンロードである「Debugging Tools For Windows」から最新の symsrv.DLL を入手する必要があります。

(何をダウンロードする必要があるかを明示的に尋ねたので、まだ持っていないと思います)

于 2008-09-21T22:54:37.840 に答える