Repo

kjana00@gmail.com

older <-

2016-03-09 03:14:03

今朝はくもり? だったっけ? 朝ごはんはパンとトマトとソーセージ。今日も温か。この快速より次に向いに来る快速の方が先に早く着くよ、なんていう珍しいアナウンスを聞いたりしつつ。単に電車遅れてただけだけど。

不毛な作業の続きだの、明日辺りからコードレビューをばんばんやって行かないと全然日程が間に合わないんですよ? というので予定が決まったレビューの準備とかを延々。この手の作業は全く面白いことが無いという難点があります……で、それはともかくもう一時間もしたら定時だっていう頃に、明日プリビューリリースなもののテストで問題が出ていますなんていう報せが入ってきたりする。

しばらくは確かに問題が起ってることは確認出来るけどこの情報じゃそれ以外何も分からないよ? というのからあれも見て欲しいだのもうちょっとサンプリングレート上げてログ取ってくれだの注文を付ける作業をしてたけど、やっぱり解決しないわねということでデバッグルームへ。環境使わせてもらえるっていうし。

診断結果に対応するビットフラグの構造体をいくつか統合してる処理があるんだけど、その統合結果をモニタしてるとたまにオンになってすぐ落ちるビットがあるっていうのが向こうの問題意識。で、それまでに取ってもらったログからすると、そもそもオンにならないっていうのが問題で、オンにならない理由がどうも診断が行われていない部分があるっていうことらしいっていうのと、その状況でたまにオンになるっていうバグじみた挙動とが別々にあるように見える。統合結果云々の方より診断してないっていう方が問題だよねということで、まずはそっちの調査から開始。

一つ目はだいぶ単純な話で、起動直後にそれ以後セットするフラグを全部決定する診断が、丁度そのタイミングで診断除外条件を満たしてるんでどのフラグも立てないことに決めていたっていうだけだった。それが分かるまでにいじったプログラムのいじり方が悪かったんだか何だかで、ブートローダでのプログラム書き込みが出来なくなって小一時間余計な時間を喰ったりしてたけど。

他にも動いてない風な診断があるんでそっちについて別に調査。電源投入順序を間違えると基板がちゃんと動かないのですというのにはまったりしつつ見てると、通信終了割り込みで呼んでもらってるはずのコールバック関数で立ててるトリガが立ってない。トリガが立たないから診断しないのは当然、という様子。ちゃんとここでこう呼んでるんだけどとコードを眺めてて、ふとこの呼び方だとバリエーションによっては呼ばれなくなるかもっていうのに気付く。通信相手の数がバリエーションによって違ってて、全部に対して同じコマンドを投げる想定で、最後の送信に対する応答でコールバックを呼んでるんだけど、実は相手によって投げるコマンド変わったから、バリエーションによっては絶対に投げないコマンドの応答でコールバック呼ぶっていうことになってるよね、っていう。

ここまででだいぶ遅くなってたんでリリースだのお客さんとの交渉だのやってる人も見物に来てたからざっと説明。統合フラグがたまにオンになるバグっぽい挙動についてはこれから調べるよ、という話をしてたところにもうちょっと人が集まったんでそのまま連絡会じみた打合せになる。で、そうこうしてるうちにバグっぽい挙動というのが実はバグでも何でもない正しい動作の一部である可能性に気付いたり。動作試験だのデバッグだので実機に繋いでデータ取ってるメモリロガーって当然内部動作とは無関係に動いてるんで、実は特別なワーク変数を取らずに直接静的変数をいじってる中間過程をサンプリングしてるだけじゃないかっていう。実際見えてる時間が 1ms にも満たなかったりするし、とてもそれっぽい。

実動作上で問題無いっていうことは、計算終了後に別の RAM 領域にコピーしてそっちを観測するっていうことで証明出来るでしょう。このメモリロガーでこういう余計な問題が見えないようにするには……メモリを二倍消費して中間結果を別に保持するようにするか、もうちょっと真面目に考えてちゃんと修正するか。何にせよ明日出すものに入れるのは辛いかなっていうところ。実際のところ、この統合フラグの問題になってるビットを気にしてるモジュールが無いので今のままでもあんまり問題は無いっていう話はある。動いてない診断に関する問題が起こった時に検出出来ないっていうぐらい。プリビューリリースならそれでもいいような気がしなくもないですね、とかいう話をしつつ終わる。何せこの時点で 22:00 近かったんで。

そのまま帰って、さすがに今から晩ごはん作りたくないねと寄り道して担々麺と焼売。お腹空いてたのに妙にお腹一杯になったぞ……それで後は WWW 見たりゲームしたり。帰ってきたのが遅いんだから適当に加減すれば良さそうなものを、と思いつつもあんまり加減してないとこういう時刻になったり。明日は眠そうね……

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12