正規メモリー管理関数およびユーザー定義のヒープ・メモリー管理関数の両方のためのデバッグ・バージョンが使用可能です。 各デバッグ・バージョンは、対応する非デバッグ・バージョンと同じ機能を実行します。 ユーザーは、共用メモリー・ヒープを含むどのタイプのヒープに対しても使用可能です。 各々のデバッグ関数の呼び出しも、_heap_check (以下で説明) を呼び出して 自動的にヒープをチェックし、メモリー問題のデバッグに使用できる、ファイル名、行番号を含む 情報を提供します。 ユーザー定義のデバッグ・バージョンの名前には _debug_u という プレフィックスが付き (例えば、_debug_umalloc)、そして umalloc.h 内に定義されます。
すべてのデバッグ・メモリー管理関数の完全なリストと詳細については、『メモリー・デバッグ・ライブラリー関数』を参照してください。
| デフォルトの ヒープ関数 |
対応するユーザー作成ヒープ関数 |
|---|---|
| _debug_calloc | _debug_ucalloc |
| _debug_malloc | _debug_umalloc |
| _debug_heapmin | _debug_uheapmin |
| _debug_realloc | 適用外 |
| _debug_free | 適用外 |
ユーザー作成ヒープ関数を呼び出すアプリケーションをコンパイルするには、ユーザー作成ヒープ使用のプログラムのコンパイルとリンク を参照してください。
次の 3 つの追加のデバッグ・メモリー管理関数には、対応する正規の関数はありません。 それらは下記の表にまとめられています。
| デフォルトの ヒープ関数 |
対応するユーザー作成ヒープ関数 | 説明 |
|---|---|---|
| _dump_allocated | _udump_allocated | デバッグ関数によって現在割り当てられている各メモリー・ブロックに関する情報を stderr に印刷します。 |
| _dump_allocated_delta | _udump_allocated_delta | _dump_allocated または _dump_allocated_delta の最後の呼び出し以降に、 デバッグ関数によって割り当てられた各メモリー・ブロックに関する情報をファイル記述子 2 に印刷します。 |
| _heap_check | _uheap_check | デバッグ関数によって割り当てられた、または解放されたすべてのメモリー・ブロックをチェックして、 割り当てられたブロックの境界の外部、または空きメモリー・ブロック内に上書きが発生していないことを確認します。 |
_heap_check 関数はデバッグ関数によって自動的に呼び出されます。 ユーザーは明示的にこの関数を呼び出すこともできます。 次に、現在割り当てられている メモリー・ブロックの情報を表示するため、_dump_allocated または _dump_allocated_delta を 使用することができます。これらの関数は明示的に呼び出す必要があります。