Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ こんなん送りました。
前回同様、固有名詞や先方のメールの引用部分は削除。
************** 技術サポート担当 **様 先だっては、ご丁寧に対応いただき、ありがとうございました。 (引用者註:引用に付き削除) ということでしたので、しばらく様子を見ていましたが、残念なが ら未だに警告メールが届いております。 「表書き差出人」とRecievedヘッダ中のIPアドレスには変化はあり ませんので、状況は変わっていないようです。 一応、今回は報告差し上げましたが、これ以上は御社の問題という より、当該ホストを管理している方の問題でしょうから、こちらか らこれ以上の報告は致しません。 重ね重ね、ご対応、ありがとうございました。 それでは。
さーて、どうするかなぁ。
穴を突いてマシンを落としてやろうか、とかいう気になってくるよ。まったく。
_ [ruby-dev:18496]のパッチをあてようと思って、その前に手元のリポジトリを更新したらmakeが通らなくなる罠([ruby-dev:18514])。
_ GCは難しくてわかんなーい。あおきさんのRHGに期待。
まぁ、gc.cに関しては、時間をかければわかるような気はする。eval.c・parse.y・regex.cは、時間をかけてもわかるようになる気はしない...(でかいからか?)
_ 昨日の件をデバッグしようと思って家の環境(WinXP Pro・VC5/VC7)で試してみたら再現しなかった。
職場の環境(Win2k・VC6)ではばっちり再現するんだけどなぁ。
_ というわけで、休日出勤のついでにデバッグしようと思ったのだけど、VisualStudioのプロジェクトを用意してやってみたら再現しなかった。しょぼーん。
コマンドラインから実行したら100%再現するのになぁ。
_ しかたないので、signal.cのinstall_sighandler(SIGSEGV, sigsegv);を殺してみた。
これで[BUG]が出ずに落ちて、組込み(?)デバッガでデバッグできるはずだ。うひひ。
...
組込みデバッガがBCB5だー。VC++に切り替える方法がわかんないよー。
まぁいいや、BCB5でもbtさえ取れれば... 取れれば... ...
btの取り方がわかんないよー。うわーん
_ 「mswin32」と書いてるけど、別にmswin32版に限った話じゃないんだよな... なんてことを思いつつ、昨日の続き。
_ デバッガに頼るのがよくないんだ、男は黙ってprintf()だ! と思い直してデバッグ再開。
勘でgc.cの94行目のrb_gc()をprintf()ではさんでみたら、見事にここで落ちている。
そこでrb_gc()の中にprintf()をばらまいてみたところ、rb_gc_mark_global_tbl()の呼び出しで落ちている。
というわけで、variable.cに移ってみると、mark_global_entry()で関数ポインタ呼び出し発見。露骨に怪しいですな。
というわけで、ここで使ってるポインタを全部ダンプ。ふーむ、entryはよさげだけどvarがだめぽ。
_ よくわかんないので、keyを引数にrb_id2name()して変数名を出してみよう。
えーと、$objsか。ここでmkmf.rbを見ると、$objsは651行目(落ちてる行)が初出。
ということは、グローバル変数の登録の途中の中途半端な状態でGCが走ってるってことかな。
ではグローバル変数を登録してる場所は... rb_global_entry()か。
entryを確保して、rb_global_tblに登録して、varを確保して... って、このvarの確保の途中でGC走ったらダメじゃーん。これか。
_ time.rbとその中で定義される各メソッドの存在に今頃気付く。
いちいちTime.utc(*ParseDate.parsedate(timestr)[0,6])とか書いてたのに。くそう。
_ [ruby-dev:18539]を見て思い出した。
この前書いてたように、あのバグが解決したら[ruby-dev:18496]のパッチを試してみるつもりだったんだった。すっかり忘れてた。
被捕捉アンテナ類
[\ay antenna (testing)]
[Ant]
[Antenna-Julia]
[LayserあんてなV2]
[nAntenna]
[nuance de Antenna]
[Rabbit's Antenna]
[Read List]
[Ruby hotlinks 五月雨版 (るるりん。)]
[してたま (私的アンテナ with たまてばこ)]
[ただのあんてな]
[ちゃらんぽらん]
[でこぽんリンク]
[なよろアンテナ]
[にっきトレーサー]
[偽善者あんてな - 2nd season -]
[湘南日記放送局(SDB)]
[はてなの各アンテナ]