アカウント名:
パスワード:
友達が仕事でMSX3用のHDDユーティリティを作っててカツカレー3杯(笑)でdebugを手伝っていた事があるんだけど、ある時期からいきなりハングアップしやすくなってしまった事があります。ある程度ロールバック等してみたんだけど効果なし。2人でソースとにらめっこしてたんだけど数日追っかけても全然アヤしいところが見つからないと。泊り込みで片方が寝てる間に片方がチェックという状況だったんだけど、ある時友達が寝ている時にふとコード行の最後に
dummy: 256 dup(0)
# だったかな? まあそんな感じのコードを入れたらピタッとハングアップしなくなったと。特にヒープを使うようなコードでもなかったし、逆にスタックエリアを同じように増やすだけでは改善しなかったり。何度もその行をつけたり外したりして比較したんだけど確かにこれで改善される…でもコード上でそのあたりのメモリを参照したり、スタックでつぶされている気配もなし。何でコレで直るんだろ…と思ってたけど結局それで納品したらしい(256についてはいろいろ実験して多少小さくしたような記憶もあるけどよく覚えていない)。もっともMSX3が派手にこけたせいでそのプログラムの存在はほとんど知られること無く終わったらしい。
# 当然ながらこういう手を使うのはそれが始めてではなく# その前にも一度同じ手で逃げられた経験があったり。# でもなぜそれで動いてしまうのか未だに理解できず…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
20年ぐらい前の話(もう時効でいいよね?) (スコア:2, 興味深い)
友達が仕事でMSX3用のHDDユーティリティを作っててカツカレー3杯(笑)でdebugを手伝っていた事があるんだけど、ある時期からいきなりハングアップしやすくなってしまった事があります。ある程度ロールバック等してみたんだけど効果なし。2人でソースとにらめっこしてたんだけど数日追っかけても全然アヤしいところが見つからないと。泊り込みで片方が寝てる間に片方がチェックという状況だったんだけど、ある時友達が寝ている時にふとコード行の最後に
# だったかな? まあそんな感じのコード
を入れたらピタッとハングアップしなくなったと。特にヒープを使うようなコードでもなかったし、逆にスタックエリアを同じように増やすだけでは改善しなかったり。何度もその行をつけたり外したりして比較したんだけど確かにこれで改善される…でもコード上でそのあたりのメモリを参照したり、スタックでつぶされている気配もなし。何でコレで直るんだろ…と思ってたけど結局それで納品したらしい(256についてはいろいろ実験して多少小さくしたような記憶もあるけどよく覚えていない)。もっともMSX3が派手にこけたせいでそのプログラムの存在はほとんど知られること無く終わったらしい。
# 当然ながらこういう手を使うのはそれが始めてではなく
# その前にも一度同じ手で逃げられた経験があったり。
# でもなぜそれで動いてしまうのか未だに理解できず…
Re: (スコア:0)
・ゼロ初期化の処理がそこに入ることでレジスタ自体が初期化されるので、
レジスタ不定状態という状態からゼロという確定値に固定された。
個人的には後者の初期化絡みの話っぽいと思う。