Microsoft Foundation クラス ライブラリは、簡単にプログラムのデバッグをする多くの診断サービスを提供します。これらの診断サービスには、マクロとは、割り当て、実行時に、オブジェクトの内容をダンプし、実行時にデバッグ メッセージを印刷、プログラムのメモリを追跡するグローバル関数が含まれます。診断サービスのグローバル関数とマクロは、次のカテゴリにグループ化されています:
これらのマクロや関数のデバッグとリリース バージョンの MFC でのCObjectから派生したすべてのクラスをご利用いただけます。ただし、 DEBUG_NEWと確認を除くすべてのリリース バージョンでないです。
デバッグ ライブラリでは、すべての割り当てられたメモリ ブロックは「ガード バイト数」シリーズに囲まれていますこれらのバイトは誤ったメモリ書き込みによって迷惑をかけられる場合は、診断ルーチンに問題を報告できます。場合は、行を含める
# define 新しい DEBUG_NEW
実装ファイルに、新しいすべての呼び出しでメモリ割り当てが行われたファイル名と行番号を保存します。関数CMemoryState::DumpAllObjectsSinceは、メモリ リークを特定することができますこの追加情報が表示されます。またCDumpContextクラス診断出力の関連情報を参照してください。
さらに、C のランタイム ライブラリも、あなたのアプリケーションのデバッグに使用できる診断関数のセットをサポートします。詳細についてを参照してください デバッグ ルーチンのランタイム ライブラリ リファレンス。
| アサート | メッセージを印刷し、指定された式をライブラリのデバッグ バージョンでがFALSEに評価される場合、プログラムを中止。 |
| ASSERT_KINDOF | 指定したクラスから派生したクラスの指定したクラスのオブジェクトは、オブジェクトのテスト。 |
| ASSERT_VALID | オブジェクトの内部妥当性は、 AssertValid関数を呼び出すことによってテスト;CObjectから通常オーバーライド。 |
| DEBUG_NEW | メモリ リークを見つけるために、ファイル名と行番号デバッグ モードでのすべてのオブジェクトの割り当てを提供します。 |
| トレース | Printfを提供-ライブラリのデバッグ バージョンでの機能のように。 |
| TRACE0 | トレースが、フォーマット文字列引数なしではのような。 |
| TRACE1 | トレースが、形式文字列を 1 つの引数を取るような。 |
| TRACE2 | トレースが、フォーマット文字列の 2 つの引数を取るような。 |
| TRACE3 | トレースが、フォーマット文字列の 3 つの引数を取るような。 |
| 確認します | ASSERTに似ていますが、同様のデバッグ バージョンのライブラリのリリース バージョンで式を評価。 |
| afxDump | CDumpContext情報、デバッガーの出力ウィンドウやデバッグ ターミナル送信グローバル変数。 |
| afxMemDF | デバッグ メモリ アロケーターの動作を制御するグローバル変数。 |
| afxTraceEnabled | グローバル変数の使用を有効にするまたはトレースマクロの出力を無効に。 |
| afxTraceFlags | MFC の組み込みのレポート機能を有効にするグローバル変数。 |
| AfxCheckError | グローバル変数が渡されたテストするために使用 エラーの場合、その場合を参照してくださいするには、 SCODEを適切なエラーをスロー。 |
| AfxCheckMemory | すべての整合性は現在メモリ割り当てチェックします。 |
| AfxDump | デバッガーで呼び出された場合、オブジェクトの状態は、デバッグ中ダンプします。 |
| AfxDumpStack | 現在のスタックのイメージを生成します。この関数は、常に静的にリンクされています。 |
| AfxEnableMemoryTracking | メモリ トラッキングのオンとオフになります。 |
| AfxIsMemoryBlock | メモリ ブロックが正しく割り当てられていることを確認します。 |
| AfxIsValidAddress | メモリのアドレス範囲はプログラムの境界内にあることを確認します。 |
| AfxIsValidString | 文字列へのポインターが有効かどうかを決定します。 |
| AfxSetAllocHook | 各メモリ割り当て関数の呼び出しを有効に。 |
| AfxDoForAllClasses | すべてCObjectを指定された関数を実行-実行時の型チェックをサポートするクラスの派生。 |
| AfxDoForAllObjects | すべてCObjectを指定された関数を実行-新しいで割り当てられたオブジェクトの派生元。 |