福嶋です。 akira yamada / やまだあきら <akira / arika.org> wrote: > 福嶋さんの Ruby/Pcap 0.4 を使おうとしているのですが > test.rb を実行すると [BUG] Segmentation fault してしまいます. えーと、test.rbは配布に含まれているものそのままのものでしょうか? あれは de0 という BSD/OS のインタフェース名を直接指定しているので、 そのまま Linux 上で実行すると examples/test.rb:4:in `open_live': bind: de0: Operation not supported by device (Pcap::PcapError) from examples/test.rb:4 とかなるはずなんですが。 また、tcpdump.rbを使って、 ruby tcpdump.rb -ni eth0 などと、適当にLAN上のデータを読ませた場合はどうなるでしょうか。 > よくわからないなりに trace してみたのですが, > こんな感じになります(これでは不十分かな): > > #0 0x40161c98 in ?? () > #1 0x40194236 in _init () from /usr/lib/ruby/1.4/i386-linux/pcap.so > #2 0x40183527 in pcap_read () from /usr/lib/libpcap.so.0 > #3 0x401944a7 in _init () from /usr/lib/ruby/1.4/i386-linux/pcap.so 肝心のpcap.so内の関数名等が出ないのは何故だろう... あと _init って何なんでしょうねぇ。そんな関数はないはずなんですが。 > 環境は Debian GNU/Linux で > Ruby 1.4.2 に ruby-list, ruby-dev に流れて > 取り込まれることになった各種の patch をあてたものです. > pcap ライブラリは CHANGES が > > @(#) $Header: CHANGES,v 1.45 98/01/30 18:29:39 leres Exp $ (LBL) > > となっているものです(Debian 的には ruby 1.4.2-4 と > libpcap0/libpcap-dev 0.4a6-2.1 という環境です). あいにく今はpotatoの環境がないのですが、上記の libpcap のソースパッ ケージから slink 上で .deb を作り、それをインストールして試してみ ましたが再現しませんでした。 --- 福嶋正機