VS如何进入Chromium子进程调试

由于Chromium具有多进程架构,因此调试起来可能具有挑战性 。当您在调试器中选择 “运行”时,将仅调试主浏览器进程。实际呈现网页(Renderer)和插件的代码将在尚未调试的单独进程中进行。要想调试子进程还需要一些改造,我比较喜欢使用自动附加到子进程办法。

1、自动附加到子进程
Microsoft的Child Process Debugging Power Tool 是对此的独立扩展,而 VsChromium 是捆绑了许多其他附加功能的另一个选项。您还必须以管理员身份运行Visual Studio,否则它将无提示地无法附加到Chrome的某些子进程。

2、手动附加到子进程
您可以使用调试器附加到正在运行的子进程。选择 工具>附加到进程 ,然后单击 要附加到的 chrome.exe进程。在附加之前,请确保 在附加到流程时仅选择了本机代码。这是通过在“附加到流程” 窗口中单击“ 选择… ” 并仅选中“本机”来完成的。如果您忘记了这一点,它可能会尝试以“ WebKit”模式附加以调试JavaScript,并且您会收到一条错误消息“在当前状态下,n操作不合法”。

现在,您可以像调试两个进程一样调试它们。 在调试多个进程时,请打开“ 调试”>“ Windows”>“进程” 窗口以在它们之间切换。

有时,您正在调试仅在启动时才会发生的事情,并希望在子进程启动后立即对其进行查看。使用:

--renderer-startup-dialog  --no-sandbox

您必须禁用沙箱,否则将禁止显示对话框。出现对话框时,请访问“ 工具”>“附加到进程”, 然后附加到显示“ Renderer启动”对话框的进程。现在,您正在渲染器中进行调试,并且可以通过在对话框中按“确定”来继续执行。

其他子进程类型也存在启动对话框:-- gpu-startup-dialog,-- ppapi-startup-dialog,-- plugin-startup-dialog(用于NPAPI)。

3、半自动将调试器附加到子进程
以下参数使子进程在繁忙循环中等待60秒,以便调试器将其附加到该进程。一旦任一条件成立,它将继续进行;没有异常被抛出。

--wait-for-debugger-children [=过滤器]

过滤器(如果提供)仅在将–type参数与进程匹配时才会触发。值包括渲染器,插件(用于NPAPI),ppapi ,gpu-process和 Utility 。

使用此选项时,使用以下方法来限制生成的渲染器进程的数量可能会有所帮助:

--renderer-process-limit = 1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值