gpt4 book ai didi

c++ - 使用 --ppapi-out-of-process 标志时,visual studio 调试器是否仍可用于调试 ppapi 受信任的插件?

转载 作者:行者123 更新时间:2023-11-30 04:21:37 26 4
gpt4 key购买 nike

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

使用这些标志,我发现对 PPB_MESSAGING_INTERFACEPPB_GetInterface get_browser 的调用返回 null,经过一些搜索我发现了这个 issue其中声明您必须使用标志 --ppapi-out-of-process 运行才能获得 MessageLoop 支持。

添加了该标志后,get_browser 确实返回了一个有效的接口(interface)指针,但我无法再使用 visual studio ide 调试我的插件,因为它无法附加到运行我的插件的子进程。无论如何告诉它附加到我的插件进程或从支持 MessageLoop 的单个进程运行的方式?

谢谢,詹姆斯

最佳答案

要让 Visual Studio 自动附加到子进程,您可以使用 Can Visual Studio be made to debug child processes like WinDBG? 中描述的解决方法.

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

第三种方法是使用 Microsoft 提供的免费调试器 WinDbg。它比 Visual Studio 中的内置调试器更复杂且用户友好性要差得多,但它确实具有自动附加到子进程的能力。可从 http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 下载.

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

关于c++ - 使用 --ppapi-out-of-process 标志时,visual studio 调试器是否仍可用于调试 ppapi 受信任的插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14370954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com