ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

ブレークポイント - 2


普通のデバッガにあるような実行時に止めるブレークポイントは上のように出来ます。
Dr7 の上位16bitを弄ると少し特殊な

  • 特定のアドレスに書き込んだとき
  • 特定のアドレスに読み書きしたとき

ブレークポイントを仕掛けることができます。

     4bits 4bits 4bits 4bits
    +-----+-----+-----+-----+--
Dr7 | Dr3 | Dr2 | Dr1 | Dr0 |
    +-----+-----+-----+-----+--
     <-- ブレークのタイプ -->

上位16bitを下から4bitずつ Dr0〜Dr3 に対応していて、

   <-    Dr0    ->
                                        • -
| 長さ | タイプ |
                                        • -
タイプ(2bit) 0: 実行時 1: メモリへの書き込み時 3: メモリへの読み書き タイプが 1 or 3 の場合はそのアクセス長で 長さ(2bit) 0: BYTE 1: WORD 3: DWORD

このように色々選べます。
うーん、高機能。


上手く使うと以下のようなことが出来ます。

  • この変数、いつの間に NULL になってるんだろう…?
  • この変数が 0 になったら止まって!