在做网页控件程序的时候,经常使用的调试方法有两种:
1.首先打开嵌入了控件的网页,然后打开VS,打开控件源代码,选择【调试】-》【附加到进程】,打开“附加到进程”对话框,在可用进程列表中选择一开始打开网页的IE进程,选择【附件】,即可在VS中设置断点进行调试。(注意在“附加到进程”对话框中,需要选择合适的调试代码类型,对于C++程序选择“本地/native”类型)
2.使用VS打开控件源代码,在项目【属性对话框】的【调试】页,【命令】栏填写iexplore.exe的全路径名,【命令参数】填写用于调试控件的网页文件,然后F5调试即可。
但是在使用IE8进行控件调试时,上述两种方法似乎都不能奏效,现象是设置的断点无法被激活。
原因是,IE8默认为每个标签页启动一个新的进程,而按照上述两种方式,无论是1中选择附加到的进程,还是2中启动的iexplore进程,都不是实际运行网页标签的IE进程,即调试器没有绑定到正确的进程,断点自然无法激活。
解决的方式有两种:
1.按原方法1打开附加到进程对话框,在可选进程列表中找到正确的IE进程(不是以网页名称为名的IE进程,那个是IE的主进程而不是标签页进程)并附加到进程,如果无法激活断点,则说明进程不对,解除附加后继续选择其他的IE进程附加,直到能够激活断点。
2.运行gpedit.msc组策略管理器。在“计算机配置—》管理模板—》windows组件—》Internet Explore”中打开“选项卡进程增长”,设置为已启用,选项卡进程增长为0。应用之后IE8就进入单进程模式。这时VS只要直接按F5就能直接进入调试进程,激活断点。