namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: memory leak on libnmz



  実は、~/.ccmalloc はきちんと設定していなかったりします ^^;

<199911171319.WAA09973@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。

>> # src/.libs で namazu コマンドを実行して実験したのだけど、方
>> # 法はこれで正しいのだろうか?

  次のようなテスト用 code を書き、libnmz.a を static に link してtest 
しました。

--
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <signal.h>

#include "libnamazu.h"
#include "getopt.h"
#include "util.h"
#include "codeconv.h"
#include "form.h"
#include "conf.h"
#include "search.h"
#include "hlist.h"
#include "i18n.h"

int main(int argc, char **argv)
{
  int i = 1;
  HLIST hlist;
  PHRASERES phres;
  uchar query[BUFSIZE] = "", subquery[BUFSIZE] = "";
  uchar index[BUFSIZE] = "";
  if (i == argc) {
    exit(1);
  }
  strcpy(query, argv[i++]);
  strcpy(index, argv[i++]);

        set_lang("ja");
printf("start query=%s, index = %s\n", query, index);
// for (i = 0; i < 200; i++) {
        add_index(index);
        set_sortbydate();
        set_sort_descending();

                uniq_idxnames();
                expand_idxname_aliases();
                complete_idxnames();

  hlist = search_main(query);
printf("hlist.n=%d\n", hlist.n);

  free_hlist(hlist);
                free_idxnames();
                free_aliases();
                free_replaces();
// }
  return 0;
}

$ gcc -g libnmztest.c -I/usr/local/namazu-current/include/namazu \
 /usr/local/namazu-current/lib/libnmz.a -lccmalloc -ldl
$ ~/index$ ./a.out '{a b}' ./indexdir  2>ccmalloc.log > output

>> で、この情報を元にささっと修正して、 cvs commit。すばらしい。
>> ccmalloc はなんて便利な道具なのだ!!

  こちらでも修正されていることを確認しました。この調子で leak を撲滅し
ましょう :-)
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)