Tcl_DumpActiveMemory・Tcl_InitMemory・Tcl_ValidateAllMemory
メモリ割り当てインタフェースを有効にします。
#include <tcl.h>
int
Tcl_DumpActiveMemory(fileName)
void
Tcl_InitMemory(interp)
void
Tcl_ValidateAllMemory(fileName, line)
引数
- Tcl_Interp *interp (in)
- コマンドを加えたいTclインタープリタを示します。
- CONST char *fileName (in)
- Tcl_DumpActiveMemoryの場合、メモリ情報の出力先のファイルの名前を指定します。Tcl_ValidateAllMemoryの場合、コール元のファイル名
( 通常は__FILE__ です)を示します。
- int line (in)
- Tcl_ValidateAllMemoryの引数でコールが行われる ( 通常は__LINE__
です)ライン番号を示します。
これらのファンクションはTclメモリデバッグ情報へのアクセスを提供します。これらのコマンドはTclがコンパイル時にTCL_MEM_DEBUGを定義したときのみ機能します。TCL_MEM_DEBUGが定義されないとき、これらのファンクションは全て何もしません。
Tcl_DumpActiveMemoryは現在割り当てられた全てのメモリのリストを指定されたファイルに出力します。メモリがそれぞれ割り当ててられたブロック単位
で出力される情報は以下の通りです。スタートアドレス (
ガードゾーンを除いたもの )
、エンドアドレス、サイズ、ブロックを割り当てるために ckallocを呼び出したソースファイル名及びファイル内におけるライン番号です。Tclインタープリタが削除された後にTcl_DumpActiveMemoryをコールするのは特に役に立ちます。
Tcl_InitMemoryはinterpによって与えられたTclインタープリタに
memoryコマンドを加えます。Tcl_InitMemoryは
Tcl_Mainによって呼ばれます。
Tcl_ValidateAllMemoryは全ての現在割り当てられたメモリブロックのガードゾーンの妥当性検査を強制します。通
常、ブロックの妥当性検査が発生するのは(フル妥当性検査が有効にセットされている場合を除いて、)メモリが解放されるときだけです。フル妥当性検査が有効なら妥当性検査が発生するのは
ckalloc、及びckfreeが呼ばれるときです。このファンクションは全ての時点で妥当性検査を実行できるようにします。
TCL_MEM_DEBUG, memory
memory, debug
Copyright © 1992-1999 Karl Lehenbauer and Mark Diekhans.
Copyright © 2000 by Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|