Javaでのデバッグ
ようやくReverseTCPリンク(単にConnect側がReceiverになるだけ)とRelayリンク(メッセージをL7で中継)が完成。
割とバグが多くて直す仮定でエンバグするという、もうカオスな状態に。
と、いうことで今回得た経験。
EclipseのDebug機能は当てにしない
- Breakpointで止まらない現象が頻発(Ubuntuだから?)
- Build Cleanすると直る時もあれば直らないときもあり
- オブジェクトの中身が見られないことなんて日常茶飯事(これはよくある)
transientは慎重に
- オブジェクトをSerializeするときのtransientを付けるときは慎重に
- なるべくreadObjectメソッド内でnewする
Concurrency処理も慎重に
throw new RuntimeException()を使う
- accert的エラーが出たときはthrow new RuntimeException()ってやることでどこで起きたかトレースできる
- たぶんもっと良い方法がある
まぁ、何はともあれ動くことは動いたので、後はちくちくバグを取っていく感じ。
早く論文書かねば・・・。