デバッグ支援
Visual Assistに搭載されたVAメモリビューとVAステップフィルターを用いれば、ネイティブC/C++のデバッグに要する時間を短縮できます。
アドレスリゾルバー
テキスト形式のアドレスと呼び出し履歴を解読
プログラムダンプの代わりにテキスト形式でデバッグ情報を取得できるときは、ネイティブC/C++を解読。アドレスリゾルバーがEXE、DLL、PDBファイルを読み込み、仮想アドレスのテキストバージョンに結び付けられたシンボルを検出します。
PDBエクスプローラー
ソースコードがなくても、ネイティブコードをデバッグ
実行中のプロセスにコードがあるか否かにかかわらず、実行可能コードを含むモジュール内のシンボルを閲覧、検索できます。ソリューション内でシンボルを検索している感覚で、EXEやDLLファイル内のシンボルを検索できます。
VAメモリビュー
破損した呼び出し履歴を含むクラッシュダンプをデバッグ
VAメモリビューを使用すれば、破損している、またはリリースビルド状態であるためにVisual Studioでは解読できない呼び出し履歴を含むクラッシュダンプを追跡できます。
VAメモリビューには、呼び出し履歴が現在のスタックポインタおよびその周囲を指し示すメモリアドレスと一緒に表示されます。
特定のアドレスによってVAメモリビューを検索できます。
さらに、VAメモリビューでは、'ESP+8' や 'this'といった、より複合的な式も使用できます。
VA メモリビュー内から逆アセンブリウィンドウを開いて、メモリアドレスを表示します。
VAステップフィルター
メソッドに対して自動的にステップオーバー
ネイティブC/C++のステップスルー中、引数リスト中の信頼できるメソッドに対しては、自動的にステップオーバーします。
以下の例では、GetLoopCount() や文字列クラスにステップインすることなく、MethodStdString() にステップインします。
デバッグ開始時に表示されるツールウィンドウで、ステップオーバーしたいメソッドを特定するフィルターを作成できます。
組み込みフィルターを使用して、文字列クラス内のメソッドなど標準ライブラリの中で頻繁に使われるメソッドをステップオーバーできます。
関数テンプレートのインスタンス化とテンプレートクラスのメソッドのフィルターを指定し、インスタンス化の特定の型またはすべての型のステップオーバーを実行できます。
フィルターは後続のデバッグセッションに適用され、ソリューションのすべてに適用でき、共有ディレクトリに保存できます。