VC 控件在IE8下不能调试的解决方法
2011-06-01 16:13
447 查看
默认情况下,为了防止程序崩溃,IE8会启动2个进程。把IE作为ActiveX的调试程序是无法进行调试
在注册表HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main 下新建一个名“TabProcGrowth” 的DWORD值,把值设为0,便可以阻止IE创建多个进程。这样,就可以很方便的进行调试了。
如果是IE6或者IE7,用下面的方法应该就可以调试,不像IE8那么麻烦:
1. 打开你的OCX工程,设置好断点
2. 设置project settings-> debug-> executable for debug session 写上IE调试器的路径program argument 里设置好html文件的地址,如D:/debug.htm。
3. 用调试方式启动
4. 从IE里打开你的HTML
经过上面的修改,应该可以在IE8内调试vc编写的控件了,如果还不行,就再试试下面的方法。
IE8 是每个Tab 一个独立进程, 而BHO/工具栏控件都是在Tab 进程里面被加载,所以当你用debugger调试器调试IE主窗口是没有任何效果的。请参考下面的IE8的进程模型结构图 。显然,我们调试 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", (如果该键值不能创建,就把杀毒软件卸掉,有的时候关掉进程也不管用,最有效的办法是开机按F8进入安全模式,在安全模式下以管理员的身份进入系统,然后修改键值) 并将内容设置成 调试器的路径:
F:/Program Files/Internet Explorer/iexplore.exe 。
如果你用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 设置:
转自 http://blog.sina.com.cn/s/blog_72ce76690100qnck.html
在注册表HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main 下新建一个名“TabProcGrowth” 的DWORD值,把值设为0,便可以阻止IE创建多个进程。这样,就可以很方便的进行调试了。
如果是IE6或者IE7,用下面的方法应该就可以调试,不像IE8那么麻烦:
1. 打开你的OCX工程,设置好断点
2. 设置project settings-> debug-> executable for debug session 写上IE调试器的路径program argument 里设置好html文件的地址,如D:/debug.htm。
3. 用调试方式启动
4. 从IE里打开你的HTML
经过上面的修改,应该可以在IE8内调试vc编写的控件了,如果还不行,就再试试下面的方法。
IE8 是每个Tab 一个独立进程, 而BHO/工具栏控件都是在Tab 进程里面被加载,所以当你用debugger调试器调试IE主窗口是没有任何效果的。请参考下面的IE8的进程模型结构图 。显然,我们调试 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", (如果该键值不能创建,就把杀毒软件卸掉,有的时候关掉进程也不管用,最有效的办法是开机按F8进入安全模式,在安全模式下以管理员的身份进入系统,然后修改键值) 并将内容设置成 调试器的路径:
F:/Program Files/Internet Explorer/iexplore.exe 。
如果你用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 设置:
转自 http://blog.sina.com.cn/s/blog_72ce76690100qnck.html
相关文章推荐
- VC 控件在IE8下不能调试的解决方法
- vc 2005 2008 2010 安装ie8后不能添加控件变量解决方法
- VC的调试方式 + VC不能调试的原因及解决方法
- VC的调试方式 + VC不能调试的原因及解决方法
- VC6里改变对话框资源ID号后classwizard不能正常显示控件ID的原因及解决方法
- 解决IE8下ASP.NET不能调试的方法
- VC不能调试,解决方法
- IIS不能打开asp网页的解决方法(windows server 2003)以及如何更好的调试本地网站
- 解决安装完IE8后,VS2005不能调试问题.........
- Visual Studio 2005无法启动调试(IE8下)解决方法
- VS2008能编译却不能运行的情况,不能“调试”的解决方法
- 不能对存储过程进行单步调试的问题解决方法
- android不能调试解决方法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- VC2008 忽然无法调试DLL的解决方法
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
- C#动态代码生成控件后其他事件不能获取该控件值的解决方法
- VB源程序总是提示加载错误,或者不能加载OCX控件解决方法
- 在Win7下不能使用Vs2005调试功能的解决方法
- VS2005不能新建智能设备项目的解决方法(非IE8带来的问题)