Windows chromium 浏览器全新构建堆栈跟踪和运行时匿名致命错误

Windows chromium 浏览器全新构建堆栈跟踪和运行时匿名致命错误

最近,我开始花时间和精力去了解 chromium-browser 项目。我的目标是最终能够以开发人员的身份做出贡献,所以我最终开始研究如何获取它并在本地构建它。我在运行它时遇到了一些问题,目前还找不到任何解释。

希望它能帮助其他处于同样境况的人。在论坛上查找了很多内容后,我没有找到类似的东西,想知道这是否是我遗漏了的东西。

我正在尝试在 Windows 10 家庭版上运行 chromium-browser。我当前的配置是 i5-2500k / 8gb DDR3,我的工作区在硬盘上,直到我获得更大的 SSD(建议的规格是 16-32 GB 的 RAM 和 SSD,以使其构建和运行得更好。这会是问题的一部分吗?)。

我当前的 chromium 版本是:版本 54.0.2808.0(64 位)

为了获取和构建项目,我按照有关如何获取代码的说明进行操作。

我所做的是:

  • 将 Windows 版本的 depot-tools 提取到我的工作区中
  • fetch chromium使用和获取存储库gclient runhooks
  • 内置cd srcgn gen out/Defaultninja -C out/Debug

构建过程完成,控制台中没有显示任何错误。但是,当我启动浏览器时,我收到多个似乎与堆栈跟踪相关的错误。这些错误不是模态的,只要我不关闭任何一个,chrome 就会继续响应,页面就会按预期显示,所以这现在没什么大不了的:

StackTrace 错误

但是,如果我进行一些繁重的加载(例如:加载 Facebook 新闻提要),它似乎会挂起并且从此时起响应不佳(例如:无休止的加载,鼠标事件在选项卡内不起作用)。 您也可以通过以下方式在我这边重现此问题:https://www.google.ca然后在页面上的任意位置单击鼠标右键。

为了尝试加快速度,我运行了一个脚本来重命名每个 pdb 文件,这样它们就不会附加到进程中。这大大提高了速度,但仍然有错误。StackTrace 错误变成这样: 没有 PDB 时出错

至于挂起问题,现在将显示一个空的模态框,提示错误(描述不太清楚是什么错误)。这是模态框,一旦关闭,chrome 就会停止正常工作。鼠标悬停事件不会显示,重新加载时页面将永远无法完成加载。 空白错误

我知道最新版本有时会不稳定,但我正在努力使它成为一个令人愉快的项目。我在这里做错了什么或我可能错过了一些步骤吗?这里有人解决了类似的问题吗?

非常感谢,任何帮助都将不胜感激!

弗雷德里克

更新 - 2016/07/28:

深入研究代码本身,我发现第一个错误是由于::FreeLibrary (in module_list.cc)无法正确释放 HMODULE 造成的。抱歉把代码放在这里,如果这能有所帮助,我更愿意把它放在这里。

::UnMapViewOfFile当前调查:构建一个新版本,当失败时,重新启用该版本,::FreeLibrary查看是否能通过第一个错误。

对于第二个错误,我仍然不知道发生了什么。将继续调查,希望找到更多潜在的细节。

请随时询问任何有助于解决问题的信息。

更新 2 - 2016/07/28:

我在 StackOverflow 上问了一个不同的、更面向编程的问题,希望它能有所帮助: Chromium-browser 在 module_list.cc 中构建致命错误:检查失败

更新 3 - 2016/07/29

我终于让一些工作正常了!它使用 args.gn 中的这些配置来配置构建:

> gn args out/Default

is_debug = false
enable_nacl = false
symbol_level = 0
remove_webcore_debug_symbols = true

此配置不适用于调试,但拥有一个有效的配置是一大进步。现在超级开心!!我目前的假设是它与调试标志有关。内部函数调用在调试模式下是否难以访问正确的模块名称?

更新 4 - 2016/08/13

在重新进行调试构建后,我注意到构建目录中有几个 Windows Kit 调试器 DLL 未被复制。这次,链接过程失败了api-ms-win-crt-math-l1-1-0.dll。然后我复制了所有文件,希望它能解决所有问题。第一次运行时,错误没有出现,但当我在 Google 主页上单击鼠标右键时出现了同样的情况(浏览机制悄无声息地中断)。关闭并重新打开后,同样的错误又出现了。

有人有解决这些问题的想法或任何与 Chromium 项目不同的程序吗?

答案1

我想请求你设定你的视窗环境对于 Visual Studio,并获取编译器工具链正确。请按照以下链接中的步骤操作,并使用最新版本(包括更新)尝试所有操作。请在此处找到链接:Windows 构建说明

供您参考,请在此处找到构建 Chromium 的快照:Chromium 快照

如果这对你有一点帮助,请告诉我。谢谢。

相关内容