如何调试最新chromium

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调试最新chromium相关的知识,希望对你有一定的参考价值。

  点击展开上图中的chrome文件夹,选择chrome解决方案,右键设置为启动项目,然后直接F5(调试->开始调试)就可以启动程序调试了。
  如果想以其他的解决方案为启动项目,可以直接右键设置就行。不过需要增加下面一步设置:右键打开想要设置的启动项目的属性
  点击左边的调试选项,设置“命令”,直接将文件地址设置为chrome.exe的绝对路径地址
  这样就可以直接选择从不同的解决方案启动调试了。
  chromium是多进程架构,我们启动后只能调试主进程,其他的renderer进程和插件扩展进程是单独的,不能被直接调试。下面提供几种方法可以调试其他进程:
  1.单进程模式
  最简单的方法是将chromium运行在单进程模式。这样你会看到整个程序的状态,没有额外的工作(虽然它仍会有很多的线程)。使用单进程模式,需要在在Chrome项目属性调试页中的命令行参数添加--single-process。这种方法并不完美,因为有些问题不会出现在这个模式。
  默认情况下,Visual Studio选择Browser/browser.exe为启动项目,需要用户手动选择chrome解决方案右键设置为启动项目。
  2.启动chrome的调试log
  在命令行参数添加--enable-logging --v=1,运行期间的log将会保存在文件中,debug版本的放在out\\Debug下的chrome_debug.log中,release版本的放在C:\\Users\\账户名\\AppData\\Local\\Chromium\\User Data目录中。
  3.使用vs2013自带的“附加到进程”选项调试
  直接在vs2013中调试时,可以使用附加到进程的功能,直接开启调试后,点击Tools > Attach to Process,附加你需要调试的进程即可。
  如果你想调试的renderer进程的内容发生在进程启动时,那么可以在命令行参数增加--renderer-startup-dialog和--no-sandbox,这两个必须同时使用,才能在renderer进程启动时弹出窗口让你及时附加到进程上。
  另外还有很多有用的参数可以设置,使用这些参数可以让你随心所欲的实现自己想要调试的内容,chromium团队也在一直努力让调试变得更简单实用。其他的命令可以查看文件:content_switches.cc,里面标识了各种参数以及含义。
  调试的东西很多,今天就先讲这么多,讲多了也难以消化,之后我还会给大家带来更细致的讲解,包括windebug调试。
参考技术A   如果想以其他的解决方案为启动项目,可以直接右键设置就行。不过需要增加下面一步设置:右键打开想要设置的启动项目的属性
  点击左边的调试选项,设置“命令”,直接将文件地址设置为chrome.exe的绝对路径地址
  这样就可以直接选择从不同的解决方案启动调试了。
  chromium是多进程架构,我们启动后只能调试主进程,其他的renderer进程和插件扩展进程是单独的,不能被直接调试。下面提供几种方法可以调试其他进程:
  1.单进程模式
  最简单的方法是将chromium运行在单进程模式。这样你会看到整个程序的状态,没有额外的工作(虽然它仍会有很多的线程)。使用单进程模式,需要在在Chrome项目属性调试页中的命令行参数添加--single-process。这种方法并不完美,因为有些问题不会出现在这个模式。
  默认情况下,Visual Studio选择Browser/browser.exe为启动项目,需要用户手动选择chrome解决方案右键设置为启动项目。
  2.启动chrome的调试log
  在命令行参数添加--enable-logging --v=1,运行期间的log将会保存在文件中,debug版本的放在out\Debug下的chrome_debug.log中,release版本的放在C:\Users\账户名\AppData\Local\Chromium\User Data目录中。
  3.使用vs2013自带的“附加到进程”选项调试
  直接在vs2013中调试时,可以使用附加到进程的功能,直接开启调试后,点击Tools > Attach to Process,附加你需要调试的进程即可。

如何向 Chromium 调试器发送命令(设置断点)?

【中文标题】如何向 Chromium 调试器发送命令(设置断点)?【英文标题】:How to send Chromium debugger a command (set breakpoint)? 【发布时间】:2018-11-28 22:58:40 【问题描述】:

在开发基于 Web 的应用程序时,我使用的是高级文本编辑器(但不是完全 IDE),所以我确实依赖 Chromium 的调试器。

我想提供一种更简单的方法,通过文本编辑器的窗口在运行时放置临时断点。

我只需要能够在运行时将断点信息发送到 Chromium 调试器。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

您要么需要将文本编辑器连接到 Chrome 开发者工具,要么编写一些小(ish)程序连接到 Chrome 开发者工具并发出适当的setBreakpoint 命令。

设置断点基本上只是将一些 JSON 发送到 Chrome 开发人员工具,但要使其工作,您需要首先向 Chrome 请求 Websocket 连接,连接到该 Websocket,然后发出您的命令。有多种方法可以自动化用于 Pyhon、NodeJS、C# 和 Perl (written by me) 的 Chrome 开发人员工具,所以如果你能告诉我们你喜欢哪种语言,我们可能会建议具体的库来与 Chrome 进行通信/铬给你。

另见

https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-setBreakpoint

【讨论】:

我更喜欢 NodeJS,而我的 ide (Atom) 会支持开箱即用。

以上是关于如何调试最新chromium的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 和 Chromium 区别

如何在 Redux DevTools 中自动跟踪最新动作(时间旅行调试)

如何调试最新chromium

如何调试最新chromium

在最新的 Xcode (4.5) 中使用 iPad 1 进行开发和调试,如何?

如何在Idea中调试最新版本的Tomcat10源代码