2009年4月9日木曜日

printf デバッグについて

 毛嫌いするほどのものでもないと思う。だいたい、10万ループとかしているうちのあるデータがおかしくて、7万ループ目ぐらいにハングするといったような場合、まず、どのデータで落ちるのかログを取って見当をつけないと、デバッガでデバッグのやりようが無い。まさか、7万回もステップ実行するわけにゃいかんだろう。頭いい人は、ダンプファイルから推察でもするのかな?で、ハングできるデータを作成する?複合的な原因で落ちる場合にはどうすればいい?バグが再現できないだろう?
 次に、昨今のソフトウェアは複雑で、この間書いたやつなんか、複数の拠点間で
  1. クライアント・アプリケーション
  2. クライアント・アプリケーションが利用するコンポーネント
  3. コンポーネントから別マシンのサーバにアクセスするサーバ・システム
  4. そのサーバ・システムからWAN越しにSOAP接続
  5. SOAPモジュールから、WANのセンター・サーバへ接続
  6. センター・サーバから、3.へ再配信するためのSOAP接続
  7. そのSOAPモジュールから3.へアクセス
ログでも取らないと、デバッグなんて無理です。しかも、ダンプとれるほど単純でもないし、スレッドが絡んでくる。1行たりともソースをいじるべからず!素晴らしいけど、俺には無理だ。
 手っ取り早いログは、printf でしょう。テスト・ユニットでテストしてれば、こういう事態は減るんでようけどねぇ。それでもバグは混入する。

0 件のコメント: