如何调试最新chromium

Posted

tags:

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

  如果想以其他的解决方案为启动项目,可以直接右键设置就行。不过需要增加下面一步设置:右键打开想要设置的启动项目的属性
  点击左边的调试选项,设置“命令”,直接将文件地址设置为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,附加你需要调试的进程即可。
参考技术A 没听说易语言内知道外根本没用外chromium内核官能提供给易语言接口函数能由易语言发员自添加估计能性极

VS2019编译 当前最新版chromium

之前编译过webrtc和chromium, 由于长时间没用,被我删除了,

最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE, 火狐浏览器也没问题,

通过看google浏览器的打印日志和chromium媒体层的代码,排查下来,是ffmpeg调用解码器解码AAC失败了,有个别数据解码失败,我们是使用的libfdk,

怀疑是AAC数据打包进MP4的时候某些AAC数据被脏掉了,基本上就定位到这里,这两天看了下chromium的代码,又有点想搞下这个东西,

感觉新版的浏览器兼容性不太好,对数据正确的敏感性比较强了,于是又编译下chromium,也是为了断点调试进去,准确定位下,分析具体原因,这次用VS2019编译最新版本的浏览器,

后面再编译个带有调试符号的ffmpeg库。

1、工具

下载depot_tools,并配置环境变量,PATH下添加depot_tools的解压路径E:srcdepot_tools

 

2、设置代理

控制台管理员权限执行

git config --global http.proxy 127.0.0.1:1080
git config --global https.proxy 127.0.0.1:1080

netsh winhttp set proxy 127.0.0.1:1080

set HTTP_PROXY=127.0.0.1:1080 
set HTTPS_PROXY=127.0.0.1:1080

 

3、cmd运行gclient

 

4、配置VS的版本,环境变量设置

DEPOT_TOOLS_WIN_TOOLCHAIN = 0

GYP_MSVS_VERSION = 2019

GYP_MSVS_OVERRIDE_PATH = D:Program Files (x86)Microsoft Visual Studio2019Enterprise

 

5、 下载源码

最新版本的比较大,15G,比两年前又多了很多。

命令行执行fetch chromium

中间断了的话,可以通过gclient sync来同步代码,我下载的时候没有断过。

技术图片

 

 

 

 

6、生成vs2019解决方案 cd chromium 源码目录下 gn gen out/Default 

 

7、编译生成可执行文件 执行 ninja -C out/Default chrome 编译,也可以在vs2019里面打开all.sln build编译

 

8、单步调试,分析相关google浏览器行为,这里我是确认我mp4播放的兼容性问题

 

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

Chrome 和 Chromium 区别

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

如何调试最新chromium

如何调试最新chromium

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

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