watch のバグ回避 ― 2007年01月19日 12時57分51秒
少し前に、デバッガに関するバグが一つ修正されたと耳にしたが、詳細は忘れてしまった。
watch はあるメモリ領域が修正されるときに、プログラムを停止させるコマンドだが、運が良ければ動作する時もあると教わった。
- まず、watch が必要になる直前に break を設定しする。この時、break が掛かるのが遅ければ遅い程良い。
- そのあと、clear -all で全ての break を消す。break ポイントが残っていると、watch が暴走する。
- continue または restart。
- 運が良ければ、watch が動作する。
- この時に使えるコマンドは、source、args、trace などの変数を覗くコマンドのみ。これらのコマンドも、スタックが破壊されていると、おかしくなることもある。
- continue などをすると、二度と返ってこないので、絶対にしてはならない。
確かにうまくいくこともあった。
前回。
最近のコメント