当使用——ppapi-out- process标志时,visual studio调试器仍然可以用来调试ppapi信任的插



我正在使用pepper-25中引入的新MessageLoop类,因此我可以运行一个后台线程,阻止ppapi调用文件IO。到目前为止,我一直在运行chrome从visual studio与标志--single-process--register-pepper-plugins,所以我可以调试我的插件从visual studio内。

使用这些标志,我发现PPB_MESSAGING_INTERFACEPPB_GetInterface get_browser的调用返回null,经过一些搜索,我发现了这个问题,说明你必须使用--ppapi-out-of-process标志运行以获得MessageLoop支持。

添加了该标志get_browser确实返回了一个有效的接口指针,但我不能再用visual studio ide调试我的插件,因为它不能附加到我的插件运行的子进程。是否有办法告诉它附加到我的插件进程或从支持MessageLoop的单个进程运行的方式?

谢谢,詹姆斯。

要让Visual Studio自动附加到子进程上,您可以使用"是否可以使用Visual Studio来调试WinDBG等子进程?"中描述的变通方法。

一个不同的方法是使用标志--no-sandbox--ppapi-startup-dialog当你启动Chrome。这将导致在创建插件进程时出现一个带有进程id的消息框。然后可以使用Debug -> Attach to process…将Visual Studio调试器连接到该进程。->选择进程id。当然,你可以在没有Chrome标志的情况下附加到进程,这不是自动的,所以这真的只是让你确定你正在附加到正确的进程,如果你同时运行多个进程。

第三种方法是使用微软提供的免费调试器WinDbg。它比Visual Studio中的内置调试器复杂,用户界面也差得多,但它确实能够自动附加到子进程上。可从http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx下载。

至于MessageLoop,它将不支持进程内插件。正如您链接到的问题所提到的,开发人员应该转向进程外,即使它增加了在没有解决方案的情况下无法自动附加Visual Studio调试器的不便。

最新更新