2016/02/15

森田オセロのコンパイルエラーが無くなったものの、動かない

『思考ゲームプログラミング』に掲載されている森田オセロのUNIX V6に移植し、コンパイルエラーは出なくなりましたが、動きませんでした。
# ls -l a.out
-rwxrwxrwx  1 root    25112 Oct 10 19:58 a.out
# ./a.out
Bad system call -- Core dumped
# cdb
$
Bad system call
 0: savr5()
?
コンパイルが通ったとしても実行できるとは限らないのがC言語なので、何が問題なのかを今後探していこうと思います。

コンパイルが通るようになるまでに変更した箇所をまとめておきます。
  1. #includeを利用するため、ファイルの先頭に「#」を追加
  2. op=」を「=op」に変更
  3. 関数の引数に指定されている「register」を削除
  4. 関数名が7文字以下で一意にならないものがあったので変更
  5. 大域変数に対する「static」を削除
  6. typedef」を#defineで代用
  7. setjmp関連をUNIX V7から移植
  8. 変数を初期化する場合に「=」は不要
  9. 変数を初期化する場合に関数内に置くのは不可
  10. 構造体変数を初期化する場合に「{」と「}」のネストは不可
  11. 関数に対して「static」の指定は不可
  12. get()sscanf()が無かったのでgetchar()で代用し、処理を変更

0 件のコメント:

コメントを投稿