ネイティブ コードのデバッグ
ここでは、ネイティブ アプリケーションのデバッグ時に発生する一般的な問題や共通のデバッグ技術について説明します。 ここでは高レベルの手法について説明します。 Visual Studio デバッガーの使用方法については、「デバッガーでのはじめに」を参照してください。
このセクションの内容
「方法: 最適化されたコードをデバッグする」では、最適化されたコードのデバッグに関するヒント、特に、最適化する前のプログラムをデバッグするのが望ましい理由、デバッグ構成とリリース構成の既定の最適化設定、および最適化されたコードにだけ現れるバグを検出するためのヒント (デバッグ ビルド構成で最適化をオンにする) を示します。
「DebugBreak と __debugbreak」では、Win32 関数 DebugBreak
について説明し、プラットフォーム SDK のリファレンス トピックへのリンクを提供します。 また、コンパイラの組み込み関数 __debugbreak
についても説明します。
「C/C++ アサーション」では、アサート ステートメントとそのしくみや利点 (論理エラーのキャッチ、演算結果のチェック、およびエラー条件のテスト)、_DEBUG
との相互作用、および Visual Studio でサポートされるアサーションの種類について説明します。
「方法: インライン アセンブリ コードをデバッグする」では、[逆アセンブリ] ウィンドウを使ってアセンブリ命令を表示する方法と、[レジスタ] ウィンドウを使ってレジスタの内容を表示する方法について簡単に説明し、これらのウィンドウに関するトピックへのリンクを提供します。
「MFC のデバッグ技術」では、afxDebugBreak、TRACE マクロ、MFC のメモリ リークの検出、MFC アサーション、MFC デバッグ ビルドのサイズの縮小など、MFC プログラムのデバッグ手法について説明するリンクを提供します。
CRT デバッグ手法: CRT デバッグ ライブラリの使用、レポート用マクロ、malloc と _malloc_dbg の相違、デバッグ用フック関数の作成、CRT デバッグ ヒープなど、C ランタイム ライブラリのデバッグ手法について説明するリンクを提供します。
「ネイティブ コードのデバッグに関する FAQ」では、C++ プログラムのデバッグに関してよく寄せられる質問とその回答を示します。
「COM と ActiveX のデバッグ」では、COM や ActiveX のデバッグに使用できるツールなど、COM アプリケーションと ActiveX アプリケーションのデバッグに関する情報を提供します。
「方法: 挿入されたコードをデバッグする」では、属性を使用するコードのデバッグについてのガイダンスを提供します。 ソースの注釈を表示する方法、挿入されたコードを表示する方法、現在の実行ポイントにある逆アセンブリ コードを表示する方法などを説明します。
「チュートリアル: 並列アプリケーションのデバッグ」では、[並列タスク] ツール ウィンドウと [並列スタック] ツール ウィンドウを使用して並行アプリケーションをデバッグする方法について説明します。
関連セクション
「C++ プロジェクトのデバッグを準備する」では、C++ プロジェクト テンプレートで作成されたネイティブ プロジェクト タイプをデバッグする方法について説明します。
「DLL プロジェクトのデバッグ」では、ネイティブ DLL とマネージド DLL をデバッグする方法について説明します。
「デバッガーでのはじめに」では、デバッグ ドキュメントのより大きなセクションへのリンクを提供します。 デバッガーの新機能、設定と準備、ブレークポイント、例外の処理、エディット コンティニュ、マネージド コードのデバッグ、ネイティブ コードのデバッグ、SQL のデバッグ、ユーザー インターフェイス リファレンスなどの情報へのリンクを提供します。