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