[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3838] BOARD: Re: malloc/free の動作



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3d1439e1_e25d

2002/06/22 17:48
Gaku

こんちは。Gaku です。

[OSASK 3835] へのレスです。

malloc/free の動作は了解しました。

> 動作を追跡して、問題が起こるmalloc-freeのログを取れないものでしょうか?

http://eieweb.yz.yamagata-u.ac.jp/~m01873/data/memlog.lzh

log5.txt  は script5.bin  で sample.txt を2回動かした出力。
log6a.txt は script6a.bin で sample.txt を2回動かした出力。
どちらも alloc.txt を用意しておくとログを書き出します。

ログファイルの1行の意味は以下の6項目です。
 o 呼び出し元ファイル名
 o 呼び出し元ファイル行番号
 o debug_malloc で返したアドレス / debug_free に渡されたアドレス
 o 動作の種別 alloc / free / nomemory / empty / error
 o 要求されたサイズ or free された領域のサイズ
 o 動作後のメモリ確保の総サイズ

debug_malloc / debug_free の動作はログの書き出しと malloc/free を
呼び出してメモリを確保することです。
メモリ確保の際に 4byte 余計に確保し領域サイズの記憶に使います。
動作の種別は nomemory は malloc 失敗で empty error はないハズです。
このデバック版では lib_init, lib_opensignalbox は AUTO_MALLOC では
なく static 変数から割り当てています。
すくりぷとを読み込んで実行するたびに確保したメモリは解放しますが
153912byte が解放されずに常に確保されたままです。
つまり最終的に 153912byte まで戻れば予想外のメモリリークなしです。

起動時時間が掛かるかと思いますがフォントを読み込んでいるせいです。

それでは。また。