Visual Studio 2005 で開発された C++ アプリケーションの完全なコール スタックを取得するにはどうすればよいですか? システム ライブラリのコードを含む完全なコール スタックが必要です。
Visual Studio で一部の設定を変更する必要がありますか? または、追加のソフトウェアをインストールする必要がありますか?
Visual Studio 2005 で開発された C++ アプリケーションの完全なコール スタックを取得するにはどうすればよいですか? システム ライブラリのコードを含む完全なコール スタックが必要です。
Visual Studio で一部の設定を変更する必要がありますか? または、追加のソフトウェアをインストールする必要がありますか?
すべてのプロジェクトの依存関係のデバッグ情報を取得します。これは、プロジェクト プロパティの [構成プロパティ -> C/C++ -> 一般] セクションで指定されます。
メニューで、[ツール] -> [オプション] に移動し、[デバッグ] -> [シンボル] を選択します。
Microsoft の無料シンボル サーバー「symsrv symsrv.dll c:\symbols* http://msdl.microsoft.com/downloads/symbols」を指す新しいシンボルの場所 (フォルダー アイコン) を追加します。
「キャッシュシンボル」フィールドにローカルの場所を入力して、常にインターネットにアクセスしないようにします。
または、必要に応じて (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
コール スタック コマンドを発行します。
キロバイト
Clay に同意しますが、Symbols Server の場合は、Microsoft の無料ダウンロードである「Debugging Tools For Windows」から最新の symsrv.DLL を入手する必要があります。
(何をダウンロードする必要があるかを明示的に尋ねたので、まだ持っていないと思います)