FreeBSD 2.X についての FAQ (よくある質問とその答え) : ネットワーキング : ppp が動きません. どこを間違えているのでしょう? : ppp が segmentation fault になるのですが, ppp.core
Previous: 私のchatスクリプトでは`\'という文字をPPPが解釈して
Next: auto modeでdialをするようなprocessがconnectしてくれない

10.7.18. ppp が segmentation fault になるのですが, ppp.core ファイルがありません

ppp (や他のプログラム) はけして core を吐いてはいけません. ppp は 実効 uid が 0 で動いていますので, オペレーティングシステム は ppp を終了させる前にディスクに core イメージを書き込みません. しかし ppp は実際にはセグメンテーション違反や他の core を吐く原因 となるようなシグナルによって終了して おり, さらに 最新の バージョン (このセクションの始めを見てください) を使用している ならば, 次のようにしてください:

          $ tar xfz ppp-*.src.tar.gz
          $ cd ppp*/ppp
          $ echo STRIP= >>Makefile
          $ echo CFLAGS+=-g >>Makefile
          $ make clean all
          $ su
          # make install
          # chmod 555 /usr/sbin/ppp
        

これで debug 可能なバージョンの ppp がインストールされます. root で ppp を実行し, 全ての特権が無効になっているようにする必要 があるでしょう. ppp を実行する時には, current directory が make した directory であるようにしてください.

これで, ppp がセグメンテーション例外を受け取ったときには ppp.core という名前の core ファイルを吐くようになります. core が 吐かれたら次のようにしてください:

          $ su
          # gdb /usr/sbin/ppp ppp.core
          (gdb) bt
          .....
          (gdb) f 0
          .....
          (gdb) i args
          .....
          (gdb) l
          .....
        

質問する際には, これら全ての情報を提供して, 問題点の分析ができ るようにしてください.

gdb の使い方に慣れている場合には, 実際に dump の原因となった 理由やそのアドレス, 関連した変数の値なども調べる事ができるでしょう.


FreeBSD 2.X についての FAQ (よくある質問とその答え) : ネットワーキング : ppp が動きません. どこを間違えているのでしょう? : ppp が segmentation fault になるのですが, ppp.core
Previous: 私のchatスクリプトでは`\'という文字をPPPが解釈して
Next: auto modeでdialをするようなprocessがconnectしてくれない