2013年6月3日月曜日

[どうぶつしょうぎ] 完全解析ツールのバグについて

以前、東京大学情報基盤センターの田中先生による「どうぶつしょうぎ完全解析ツール」をUbuntu環境で使うとエラーになる件について環境依存かもしれないと書いたのだが、 ちゃんと調べてみたら単なるバグだったことが分かった。

環境によって動いたり動かなかったりしたのはたまたまの模様。



dobutsu.ccState:<< オペレータの定義中で、戻り値として ostream を返していなかったのが原因。 そのため、

  State s;
  ...
  std::cerr << s << std::endl;

のようなコードで Segmentation fault になっていた。
dobutsu.ccState:<< オペレータの定義の最後に、

  return os;

の一行を入れておけばよい。
これで、Ubuntu - 13.04 の 32bit 版でも正常に動作するようになった。

パッチ:
$ diff -u dobutsu-org/dobutsu.cc dobutsu
--- dobutsu-org/dobutsu.cc 2009-06-29 20:28:40.000000000 +0900
+++ dobutsu/dobutsu.cc 2013-05-26 22:55:44.006474987 +0900
@@ -99,6 +99,9 @@
     os << "+\n";
   else
     os << "-\n";
+
+  // ADDED BY XAWA
+  return os;
 }


0 件のコメント:

コメントを投稿