電子書籍の厳選無料作品が豊富!

Perlで掲示板等で、時々coreダンプをだしてしまうのですが、
このファイルにはいったい何が出力されているんですか?
見方とか、見るためのツールとかがあるんでしょうか。

A 回答 (2件)

わざと perl に core をはかせる perl スクリプトも書けないこと


はないですけど、syscall を使うとか、C言語で書かれた外部ルー
チンを呼び出すといった特殊なことしてバグってしまうか、自身を
kill するといった明らかなことをするかしないといけませんので、
普通には起きないと思います。
だから、たいていは perl のバグと考えて差支えないと思います。

ところで、core をはくときに、どのようなメッセージで落ちてい
るかは記録に残っているでしょうか?cgi だと、メッセージが直接
には画面に出ませんが、httpd のログとか、FreeBSD なら
/var/log/messages のログとか(linux も同様のがあるはず)、探
してみてください。
    • good
    • 0
この回答へのお礼

お返事送れてすみません。
hi-hoのWebレンタルでCGIを利用しているので、logを見れないんです。
たまに、大きなcoreを吐いて容量を圧迫するので何故かなと思ってました。
syscallもkillもしていないです。謎です。
ありがとうございました。

お礼日時:2001/02/17 05:06

core には、もとのプロセスが利用していたメモリの内容が全部入っ


ています。プログラムのバグにより変なアドレスにアクセスしたり
した場合に、生成されます。(cgi プログラムのバグではなく、
perl 自身またはそれがダイナミックロードしたモジュールのバグ
です)

もとのプログラム(この場合、perl 自身)と、core の内容をつき
あわせれば、どのような原因で core をダンプすることになったか
が解析できます。解析のツールとしてはいくつかありますが、最近
の PC-UNIX では gdb が標準的でしょう。

ただし、シンボリックな(つまり、変数名とか行番号とかを使った)
解析をするには、もとの perl やモジュールが -g オプションつき
でコンパイルされ、かつソースコードが手元になければいけません。
そうでない場合は、機械語ごとに追うしかなくなるので、現実的で
はないでしょう。

この回答への補足

coreができるということは、perlで書かれたスクリプトに問題があるのでなくて、
Perl自身のバグと考えて良いんですね?

補足日時:2001/02/11 00:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!