タグ別アーカイブ: デバッグ

VisualStudioとIE8

VisualStudioを利用してIEの追加機能を作っているとデバッグに苦しむ。
ブレークポイントが素直には効かないのである。

どうもIE8では起動時にタブを1つ作が、既定の動作としてタブ1つに1つのプロセスという動きになる↓

  1. iexplore.exe を起動(A)
  2. 新しい iexplore.exe としてタブを生成(B)

こんな感じの流れになるようで、VisualStudioがアタッチした最初のiexplore.exe (A)は親プロセスになるだけのためブレークポイントが聞かないことになる。
IEが起動終了後に(B)のiexplore.exeにアタッチすることでブレークポイントが可能になるのだが、トライ&エラーで作っているとデバッグの度にアタッチダイアログを開いて(B)にあたるiexplore.exeを洗濯してアタッチボタンを押すというのが物凄く煩わしい。

で、やっぱそういう問題は認識しているようで解決方法
Tip #51 Did you know… how to use VS2005 to debug with IE8?
レジストリの
HKLM\SOFTWARE\Microsoft\Internet Explorer\Main
にTabProcGrowthというDWORD型のキーを作り、値を0に設定しIE側のスクリプトデバッガを無効にすることで(B)のiexplore.exeが起動せず(A)のiexplore.exeを利用してタブが作られるようになる。
(x64の場合、32bit IE向けにHKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main にもTabProcGrowthを追加した方がよさそう)