• [librcsc] rcg::Serializer* を整備 (akiyama) 16:30:38

全データタイプ用のserialize()を作り,それらを使って昨日のrcgrenameteamを再実装した.ついでに,いくつかのバグ修正.

  • [librcsc] rclmresultprinter 改良 (akiyama) 16:54:07

引き分けで終わってquitした試合も正しく処理できるように修正した.

  • [librcsc] コーチ用AudioSensor,AudioMemory (akiyama) 19:58:55
  • [librcsc] プレイヤ初期化時のセグメンテーションフォルト修正 (akiyama) 19:58:55

プレイヤが送信したsayメッセージをコーチが保持できるようになった. 加えて,コーチの意思決定のタイミングを調整して,なるべくseeとhearの両方を受信してから意思決定が行えるようにした. これまでは,seeを受信したらすぐに意思決定していたので同じサイクルのhearメッセージを考慮できていなかったが,これで直ったはず.

コーチの終了間際にセグメンテーションフォルトが発生するようになってしまった. 発生箇所はstd::mapをclearする部分で,なぜこんなところで発生するのかが分からない. 毎回発生するのではなく,50%くらいの割合で発生しているというのが厄介. そもそも,プレイヤとコードを共有している部分なのでプレイヤにも同じ問題が発生するはずなのに,コーチだけに発生しているのが謎. しかも,agent2dでは発生しなくて,helios側でだけ発生してるっぽい. 何だこれ? gccのバグだろうか? どこかでバッファーオーバーランを起こしてしまっていると考えるのが妥当だろうけど,どこなんだかさっぱり検討がつかない.

プレイヤの初期接続時に落ちてしまうことがある問題を修正. PlayerTypeのポインタをNULLのまま参照することがあったことが原因だった. 初期接続時のメッセージ受信タイミングによって起こることがあるようだ. とりあえず,初期化時はデフォルトタイプのポインタを強制的に与えることにして解決.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1254d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.