如何在IE8 下调试BHO控件/工具栏(调试Tab进程)

简介:
IE8 是每个Tab 一个独立进程, 而BHO/工具栏控件都是在Tab 进程里面被加载, 所以当你用debugger调试器调试IE主窗口是没有任何效果的。 请参考下面的 IE8的进程模型结构图 (来自 IEBlog) 。显然,我们调试 BHO控件/工具栏的时候,应该调试Tab 进程。
 
为了调试Tab进程,需要配置系统自动调试设置: 当IE的Tab进程被创建的时候, 系统自动把调试器启动并且attach到新创建的进程。 接下来讲解如何配置系统自动调试:
1)在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 下面创建一个 iexplore.exe 键。
2) 在 iexplore.exe 键里面创建一个字符串值(REG_SZ) "Debugger", 并将内容设置成调试器的路径
如果你用Visual Studio 作为调试器, 那么路径如下(Visual Studio 的JIT 调试器一般在system32目录):
"Debugger": C:\WINDOWS\system32\vsjitdebugger.exe
如果你用 WinDBG 作为调试器, 那么路径为你WinDBG.exe的路径 (假设你安装WinDBG在 C:\Debuggers)
"Debugger": C:\Debuggers\windbg.exe
以下是regedit 的截图,看起来更加直观一些:
 Visual Studio 设置:
 
WinDBG 调试 IE8 设置:


 本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/273680,如需转载请自行联系原作者


相关文章
|
8月前
|
Web App开发 iOS开发
Mac Safari 配置 IE 代理 (支持 IE 调试)
Mac Safari 配置 IE 代理 (支持 IE 调试)
909 0
|
Android开发
【Android 逆向】代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )
【Android 逆向】代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )
152 0
|
Web App开发 JavaScript 前端开发
在vscode中调试CocosCreator插件主进程
在vscode中调试CocosCreator插件主进程
1023 0
VS 无法在web服务器上启动调试。您没有调试web服务器进程的权限
VS 无法在web服务器上启动调试。您没有调试web服务器进程的权限
256 0
VS 无法在web服务器上启动调试。您没有调试web服务器进程的权限
使用 VSCode 调试 Electron 主进程代码
在开发 Electron 应用的时候,为了提高工作效率,我们需要借助于调试工具,及时发现并解决问题。
235 0
使用 VSCode 调试 Electron 主进程代码
|
Android开发
【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )
【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )
167 0
|
存储 Android开发
【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )
【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )
138 0
|
Android开发
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
172 0
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
|
编译器 Go
使用 vscode 调试 golang 短暂进程
背景使用 vscode 调试 golang 程序相信大家并不陌生,但当我们要调试的程序有以下特点的话,是不是会变得很棘手?要调试的程序并不由我们直接触发要调试的程序是短暂进程(调试中难以捕获进程 id)本文将以 git-hooks(proc-receive)的调试为例介绍一种针对这种场景的调试方案程序编译本文示例代码地址:https://code.aone.alibaba-inc.com/agit
使用 vscode 调试 golang 短暂进程
|
IDE 编译器 开发工具
使用Process Explorer工具分析Visual Studio 2013编译和调试产生的进程
使用Process Explorer工具分析Visual Studio 2013编译和调试产生的进程
172 0

相关实验场景

更多