关于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。这种方法我没有测试过。