[Namazu-users-ja 213] Re: mknmz がセグメンテーション違反で落ちる

有馬 章悟 arima @ masol.mei.co.jp
2005年 1月 26日 (水) 13:27:51 JST


回答ありがとうございます。

>セグメンテーション違反のメッセージ行の次あたりがわかち書き処理なので
>Text::Kakasi 内でなにか起こっているのではないでしょうか。

>Perlのバージョンが5.8.0のようなので
>これは新しいものに代えるのがよいかと思います。

Perlのバージョンを最新にして、試してみます。


>> エクセルをテキスト保存した文書をkakasi(2.3.4)にて
> > 分かち書きし、mknmz(2.0.12)を実行すると

>ということは、元ファイルは Excel ですが、それを一旦テキストファイル
>に変換して、そのファイルに対して mknmz を実行したということで
>しょうか?
># kakasi で分かち書きしてというところがわからないけど。
># 分かち書きした後にテキストファイルを作って、mknmz を実行したの
># だろうか。

私の書き間違えです。コアダンプした文書をみると
分かち書きされていたので、上記のように書きました。

実際は、mknmzで分かち書き処理の途中でコアダンプしたという
ことですよね?

>
>$ gdb perl
>(gdb) run /usr/local/bin/mknmz 引数
>
>というように実行すれば、デバッガで引っ掛けられますよね。
>で、落ちたら
>
>(gdb) where
>
>で、どこで落ちたか確認してもらうのが良いですかな。

[root @ io 07D40C0A0837175F0190000102001AB4C2FF0000285F]# gdb perl
GNU gdb Red Hat Linux (6.1post-1.20040607.17rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) run -a --media-type=text/plain /usr/local/namazu_gw_data/dfs/GDOCS -O /usr/local/namazu_gw_data/d
fs_index/GDOCS
Starting program: /usr/bin/perl -a --media-type=text/plain /usr/local/namazu_gw_data/dfs/GDOCS -O /usr/local/namazu_gw_data/dfs_index/GDOCS
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread -1218547584 (LWP 8186)]
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...Unrecognized switch: --media-type=text/plain  (-h will show valid options).

Program exited with code 035.
(gdb) where
No stack.
(gdb) 

実際にやってみたのですが、whereでは場所を特定できませんでした。
デバッグオプションでコンパイルし直す必要があるのでしょうか?

また、mknmzがコアダンプするに伴って、以前検索にヒットしていた
文書がヒットしなくなりました。
コアを吐く文書は削除したあとに、mknmzを実行し、正常終了、
NMZ.*も更新されています。
nknmzがコアダンプで異常終了した場合は、インデックスの再作成を
行う必要があるのでしょうか?

質問ばかりですみませんが、よろしくお願い致します。



Namazu-users-ja メーリングリストの案内