watch のバグ回避2007年01月19日 12時57分51秒

以前に debug にバグがあるのは書いた。未だに Stratus から完全に修正されたとの連絡は無いみたいなので、まだ存在するとは思う。

少し前に、デバッガに関するバグが一つ修正されたと耳にしたが、詳細は忘れてしまった。

watch はあるメモリ領域が修正されるときに、プログラムを停止させるコマンドだが、運が良ければ動作する時もあると教わった。

  1. まず、watch が必要になる直前に break を設定しする。この時、break が掛かるのが遅ければ遅い程良い。
  2. そのあと、clear -all で全ての break を消す。break ポイントが残っていると、watch が暴走する。
  3. continue または restart。
  4. 運が良ければ、watch が動作する。
  5. この時に使えるコマンドは、source、args、trace などの変数を覗くコマンドのみ。これらのコマンドも、スタックが破壊されていると、おかしくなることもある。
  6. continue などをすると、二度と返ってこないので、絶対にしてはならない。

確かにうまくいくこともあった。

前回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/01/19/1123600/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。