デバッグ ルーチン

C ランタイム ライブラリのデバッグ バージョンはデバッグのプログラムを見つけやすくなり開発者ができるさまざまな診断サービスが用意されています :

  • デバッグ中のランタイム関数にステップ イン直接

  • 解決アサーション エラーおよび例外

  • ヒープ割り当てをトレースしメモリ リークを防ぐのに役立ちます。

  • ユーザーへのレポートのデバッグ メッセージ

これらのルーチンを使用するには_DEBUG フラグを定義する必要があります。これらのルーチンはすべてアプリケーションのリリース ビルドの処理は実行されません。新しいデバッグ ルーチンを使用する方法の詳細に CRT デバッグ技術 を参照してください。

C ランタイム ライブラリ ルーチンのデバッグ バージョン

ルーチン

[条件]

同等の .NET Framework 関数

_ASSERT

結果が false の場合式が評価されデバッグ レポートが生成されます。

System:: Diagnostics:: デバッグ :: Assert

_ASSERTE

_ASSERT に似ていますが生成されたレポートに失敗した式が含まれています。

System:: Diagnostics:: デバッグ :: Assert

_CrtCheckMemory

デバッグ ヒープに割り当てられたメモリ ブロックの整合性を確認します。

System:: Diagnostics:: PerformanceCounter

_CrtDbgBreak

ブレークポイントを設定します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtDbgReport、_CrtDbgReportW

ユーザー定義メッセージを持つデバッグ レポートを生成して3 とおりのターゲットにレポートを送信します。

System:: Diagnostics:: デバッグ :: 書き込みSystem:: Diagnostics:: デバッグ :: WritelineSystem:: Diagnostics:: デバッグ :: WriteIfSystem:: Diagnostics:: デバッグ :: WriteLineIf

_CrtDoForAllClientObjects

ヒープの _CLIENT_BLOCK のすべての種類のアプリケーション指定された関数を呼び出します

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtDumpMemoryLeaks

重要なメモリ リークが発生した場合はデバッグ ヒープ上にメモリ ブロックをすべてダンプします。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtIsMemoryBlock

指定されたメモリ ブロックがローカル ヒープ内にあり有効なデバッグ ヒープ ブロック型識別子が設定されていることを確認します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtIsValidHeapPointer

指定したポインターがローカル ヒープ内にあることを確認します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtIsValidPointer

指定したメモリの範囲を読み取りと書き込みで有効であることを確認します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtMemCheckpoint

デバッグ ヒープの現在の状態を取得 _CrtMemStateアプリケーションが指定した構造体に格納します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtMemDifference

大きな違いの 2 人のメモリ状態を比較し結果を返します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtMemDumpAllObjectsSince

チェックポイントを指定またはプログラムの実行の開始時点から取得されたのでヒープのオブジェクトに関する情報をダンプします。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtMemDumpStatistics

ユーザー読み取り可能な形式で指定したメモリ状態のデバッグ ヘッダー情報をダンプできます。

System:: Diagnostics:: PerformanceCounter

_CrtReportBlockType

特定のデバッグ ヒープ ブロックのポインターに関連付けられたブロック型とサブタイプを返します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetAllocHook

C ランタイムのデバッグ メモリの割り当てのプロセスにフックすることによりクライアント定義された割り当て関数のインストール

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetBreakAlloc

指定されたオブジェクトの割り当て順序番号にブレークポイントを設定します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetDbgFlag

_crtDbgFlag のフラグの状態を取得したりデバッグ ヒープ マネージャーの動作を制御するには変更します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetDumpClient

_CLIENT_BLOCK の型のメモリ ブロックをダンプするデバッグのダンプ関数が呼び出されるたびに呼び出すアプリケーション定義の関数を組み込む

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetReportFile

ファイルを識別するか_CrtDbgReport によって特定のレポートの種類がターゲットとして使用するストリーム。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetReportHook

C ランタイムのデバッグ レポートのプロセスにフックすることによりクライアント定義のレポート関数を組み込む

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetReportHook2、_CrtSetReportHookW2

インストールまたはアンマネージ インストール C ランタイムのデバッグ レポートのプロセスにフックすることによりクライアント定義のレポート関数。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_CrtSetReportMode

_CrtDbgReport によって生成される特定のレポートの種類に汎用コピー先を指定します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_RPT [0,1,2,3,4]

引数の書式指定文字列と可変数の _CrtDbgReport を呼び出してデバッグ レポートを生成することでアプリケーションの進行状況を追跡します。ソース ファイルと行番号情報を提供しません。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_RPTF [0,1,2,3,4]

_RPTn マクロと同様ですがレポートの要求が発生したソース ファイル名と行番号が表示されます

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_calloc_dbg

デバッグのヘッダー用の領域を使用してヒープ メモリ ブロックの割り当て指定した数のバッファーを上書きします。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_expand_dbg

ブロックを配置または表示するにはヒープ上のメモリの指定されたブロックのサイズを変更します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_free_dbg

ヒープからメモリ ブロックを解放します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_fullpath_dbg_wfullpath_dbg

メモリを割り当てるために _malloc_dbg を使用して指定した相対パス名の絶対位置または完全パス名を作成します。

System::IO::File::Create

_getcwd_dbg、_wgetcwd_dbg

メモリを割り当てるために _malloc_dbg を使用して現在の作業ディレクトリを取得します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_malloc_dbg

デバッグのヘッダー用の領域を使用してヒープ上のメモリのブロックを割り当てバッファーを上書きします。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_msize_dbg

ヒープ上のメモリのブロックのサイズを計算します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_realloc_dbg

ブロックを移動することやサイズを変更することによってヒープ メモリの指定されたブロックを再割り当てします。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_strdup_dbg_wcsdup_dbg

_malloc_dbg を使用して文字列をメモリを割り当てるために実行します。

System:: String:: 重複

_tempnam_dbg、_wtempnam_dbg

一時ファイルをメモリを割り当てるために作成するために使用できる _malloc_dbg を使用して名前を生成します。

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

デバッグ プロセス中に別の C のランタイム ルーチンのほとんどのソース・コードをステップ実行のデバッグにルーチンを使用できます。ただしMicrosoft ではテクノロジがであると見なされるためこれらのルーチンにソース・コードを提供しません。これらのルーチンのほとんどはグループを処理するか小数点例外処理に属しますが必要な他も含まれます。次の表はこれらのルーチンを紹介します。

ソース・コードのフォームで使用できない C のランタイム ルーチン

acos、acosf

_fpclass

_nextafter

asin

_fpieee_flt

pow

atan2atan

_fpreset

printf、_printf_l、wprintf、_wprintf_l, printf_s、_printf_s_l、wprintf_s、_wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf、_scanf_l、wscanf、_wscanf_l, scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l*

_chgsign、_chgsignl

_isnan

setjmp

_clear87 の _clearfp

_j0

sin

_control87、_controlfp、__control87_2

_j1

sinh

_copysign、_copysignl

_jn

sqrt

cos

ldexp

_status87 の _statusfp

cosh

log

tan

exp.

log10

tanh

fabs

_logb

_y0

_finite

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

* ソース・コードはこのルーチンのほとんどに使用できますがソース・コードが提供されていない別のルーチンに内部呼び出します。

呼び出された場合C のランタイム関数と C++ の演算子はアプリケーションのデバッグ ビルドと異なる動作します。(アプリケーションのデバッグ ビルドを _DEBUG フラグを定義するかまたは C ランタイム ライブラリのデバッグ バージョンとリンクに配置することです)。動作の違いは通常デバッグ プロセスをサポートするルーチンによって提供される追加の機能や情報で構成されます。次の表はこれらのルーチンを紹介します。

アプリケーションのデバッグ ビルドで異なる動作をするルーチン

C の 中止 ルーチン

C++ の演算子 削除

C の Assert ルーチン

C++ の演算子 新規作成

上の表で C++ の演算子のデバッグ バージョンを使用する方法の詳細についてはC++ でのデバッグ ヒープを使用する を参照してください。

参照

関連項目

カテゴリ別ランタイム ルーチン

ランタイム エラー チェック