@fortran
プログラムの挙動がおかしい

デバッカ使う

ソースは正しいのになんかうまく動かん

スタック領域とかそこらへんのメモリ周りの設定いじる

やっぱだめ

アセンブラ出力する

なんかポップ命令おかしいの入ってね? これ取り出せないよね?

プログラムを切り出して再現性を確認する

再現性あるっぽい、原因としてしコンパイラを疑う

コンパイラのソースコード見る

バグっぽいの見つける

公式言ったらなんかバージョンアップで対応されてた
↑いまここ

原因はstレジスタ周りの処理が上手くいってなかったっぽいう。


ちなみにおそらくもっともメジャーであると思われる、GNUコンパイラでの話です。

プログラムのデバックしてるのかコンパイラのデバックしてるのかわからなくなる、それがfortran
大体数人がかりでレビューしてて明らかにコーディングに異常ないのがはっきりしてるんだし、最初からコンパイラを疑うべきだった。

C言語がそもそも言語としてもコンパイラとしても完成度が高すぎるんだよね(ここでいう完成度、というのは仕様にどれだけ忠実か、という点においてのみ。元の仕様がどんだけひどいものであっても、それを忠実に再現しているコンパイラがあれば、それは完成度の高い言語といえる)

その恵まれたその環境で育つと、あたかもコンパイラは神様のようなもので、コンパイラにミスはありえなくて、自分のプログラムにミスがあるに違いない、と思い込んでしまうのよね。
コンパイラも人間が作ったプログラムに過ぎないのにね。


ちなみにCコンパイラもちらっとのぞいてみたけど、ちょっと何いってるか分からなかった。
あのソース書いた人絶対頭おかしいわ

コメント

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索