关于FireFox和IE的插件调试,以前我有调试过T3D的,今天想再研究一下,打好断点,却怎么也无法断下来,可以前是可以的,不管是Firefox还是IE,都能打断点调试。后来才发现我目前使用的IE8和FF15都是采用的多进程方式运行,这就导致了无法直接在VS环境中F5调试;而IE6我以前我使用的FF(版本忘记了)都是单进程运行的,所以可以F5调试。
既然是多进程运行,那只需要调试运行插件的那个进程即可。有两种方法可以使用:
一、手动附加到进程
启动IE,然后点击Visual Studio的菜单“工具”——“附加到进程”,选中对应的IE进程即可。IE的进程都是IEXPLORE.EXE,而FireFox的进程有两种:一种是firefox.exe为父进程,另一种是plugin-container.exe为子进程,插件为子进程。
二、自动附加到进程
1.用IE打开所需页面,T3D中的插件是需要Web页面调用的,所以需要首先打开相应的页面。
2.在VS的项目属性窗口中,点击“配置属性”下的“调试”,在“附加”后面,选中“是”;在“命令”后面输入“C:\Program Files\Internet Explorer\IEXPLORE.EXE”,点击“确定”保存配置。
3.在VS中直接F5调试,再在IE中刷新页面。
以上两种方法我都亲试过,对FF和IE8都有效。
针对IE8,网络上还有一种说法就是改注册表,禁止IE8使用多进程方式,在注册表HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main下,新建一名为TabProcGrowth的dword值, value 为0。这种方法我没有测试过。