Infocomの名作『Infidel』に潜むメモリ破壊バグ、初のメモリデバッガで発見
Infidel Goes Wild
『Infidel』の砂漠で物を9個以上落とすと、DESERT-TABLEがグローバル変数の番号30を指してしまい、略語テーブルを上書きする。コンパイラがグローバル変数をデフォルト引数に使うと定数と誤認するためで、40年間誰も気づかなかった。
「これはCプログラマとして、メモリ破壊を最悪の罪と見なすことを法的に義務付けられている。その上、これはコンパイラのバグだ!」
Infidel Goes Wild
『Infidel』の砂漠で物を9個以上落とすと、DESERT-TABLEがグローバル変数の番号30を指してしまい、略語テーブルを上書きする。コンパイラがグローバル変数をデフォルト引数に使うと定数と誤認するためで、40年間誰も気づかなかった。
「これはCプログラマとして、メモリ破壊を最悪の罪と見なすことを法的に義務付けられている。その上、これはコンパイラのバグだ!」