はじめまして、齋藤@横浜 と申します。
現在、RedHatLinux6.2J を使用してプログラム作成などを行っております。
早速なのですが、
memory leakで分からない事があるので、どなたか御教授頂けたら幸いです。
以下のようなテストプログラムを作成しました。(といってもプログラムとは呼べ
ませんが...)
============= start test.c===================
#include <time.h>
int main(int argc, char *argv[])
{
time_t t;
struct tm *l;
t = time((time_t *)0);
l = localtime((const time_t *)&t);
exit(0);
}
============= end test.c=====================
このプログラムを以下のようにコンパイルします。
gcc -ggdb -o test test.c -lmpr
次に環境変数を追加します。
export MPRPC=`mprpc ./test`
export MPRFI="cat > mpr.log"
そして、 ./test を実行し、その後このプログラムでのメモリーリークを調べる
為
mprleak < mpr.log | mprmap -f -l ./test
と実行すると以下のようなメッセージが出力されます。
m:__strdup(strdup.c,43):tzset_internal(tzset.c,169):
__tz_convert(tzset.c,582):localtime(localtime.c,43):main(test.c,9):
__libc_start_main(../sysdeps/generic/libc-start.c,92):15:134532896
m:__tzfile_read(tzfile.c,175):tzset_internal(tzset.c,172):
__tz_convert(tzset.c,582):localtime(localtime.c,43):main(test.c,9):
__libc_start_main(../sysdeps/generic/libc-start.c,92):32:134533104
m:__tzstring(tzset.c,108):
__tzfile_read(tzfile.c,277):tzset_internal(tzset.c,172):
__tz_convert(tzset.c,582):localtime(localtime.c,43):main(test.c,9):
__libc_start_main(../sysdeps/generic/libc-start.c,92):12:134532920
m:__tzstring(tzset.c,108):
__tzfile_read(tzfile.c,277):tzset_internal(tzset.c,172):
__tz_convert(tzset.c,582):localtime(localtime.c,43):main(test.c,9):
__libc_start_main(../sysdeps/generic/libc-start.c,92):12:134532936
これは、メモリリークではないのでしょうか?
実際にlocaltime()関数も追ってみたのですが、どうも一度呼ばれたlocaltime()の
ある部分をメモリーに残して2度目からlocaltime()が呼ばれるとそのメモリーも利
用するとなっているようです。
ただそうなると、プロセスが終了するときにそのメモリーを開放するような関数が
なくてはいけないような気がします。(間違っているかも知れませんが)
今回はmprというソフトを使用しましたが、この他に、Checker(9.9.1)を使用しよう
としましたが、コンパイルが通らず断念しました。
使用している環境:
glibc -> glibc-2.1.3-15 , glibc-devel-2.1.3-15
mpr -> mpr-2.2-1
以上、長くなってしまいましたが宜しくお願いいたします。
Follow-Ups:
- [linux-users:95115] Re: memory leakHiromasa YOSHIMOTO
- [linux-users:95116] Re: memory leakT.SHIOZAKI
- [linux-users:95117] Re: memory leakNaoto Shimazaki
- Prev by Subject: [linux-users:95113] Re: 3枚目のNICの認識
- Next by Subject: [linux-users:95115] Re: memory leak
- Previous by thread: [linux-users:95132] Re:仮名漢字変換サーバーと通信できない
- Next by thread: [linux-users:95115] Re: memory leak
- Indexes:[Main][Thread]