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


1

最近,我开始花时间和精力去理解铬浏览器项目。我的目标是最终能够作为开发人员做出贡献,所以我最终想要如何获得它并在本地构建它。我在运行它时遇到一些问题,但还没有找到任何解释。

希望它能帮助处于相同情况的其他人。在论坛上看了很多,我没有找到类似的东西,想知道这是否是我错过的东西。

我正在尝试在Windows 10 Home Edition上运行chrome-browser。我目前的配置是i5-2500k / 8gb DDR3,我的工作区在硬盘上,直到我得到一个更大的SSD(建议的规格建议16-32 GB的RAM和一个SSD,以使其能够更好地构建和运行。可以吗成为问题的一部分?)。

我目前的铬版本是:版本54.0.2808.0(64位)

为了获取和构建项目,我遵循了如何获取代码的说明。

我做的是:

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

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

StackTrace errors

但是,如果我做了一些沉重的加载(例如:加载facebook新闻源),它似乎挂起并且从这一点起没有很好的响应(例如:无限加载,鼠标事件在tab中不起作用)。它也可以转载到我的最终 https://www.google.ca 并右键单击页面上的任意位置。

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

至于悬挂问题,它现在将显示一个空的模态框,表明存在错误(描述对于它是什么并不太好)。这是一个模态,一旦关闭,铬停止按预期工作。发生的事情是鼠标悬停事件没有显示,并且页面在重新加载时永远不会完成加载。 Blank error

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

非常感谢,非常感谢任何帮助!

弗雷德里克

更新 - 2016/07/28:

深入研究代码本身,我发现第一个错误是由 ::FreeLibrary (in module_list.cc) 无法正确释放HMODULE。很抱歉在这里放置代码,如果这可以帮助我更喜欢在这里。

目前的调查:建立一个新的版本,依靠 ::UnMapViewOfFile 什么时候 ::FreeLibrary 没有看到它是否通过第一次错误。

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

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

更新2 - 2016/07/28:

我在StackOverflow上问了一个不同的,更多面向编程的问题,如果它可以帮助: 在chrome_list.cc中,Chromium-browser构建致命错误:检查失败

更新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主页上右键单击时(默认情况下浏览机制被破坏)发生了相同的行为。关闭并重新打开后,相同的错误又回来了。

任何人都想知道解决这些问题或任何不同的程序然后铬项目的那些?


将堆栈跟踪仅作为映像是无益的。你是否可以至少在Pastebin上放一个,如果你不喜欢将它作为文本包含在问题中?
tripleee

@tripleee我将尽力在下周检索或管道错误,以便能够有效地复制/粘贴它们。
Frederik.L

Answers:


3

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

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

如果它对你有所帮助,请告诉我。 谢谢。


我仔细检查了配置。我唯一不同的是,我实际上有Visual Studio 2015 Update 3而不是Update 2.它可能是那么糟糕,值得降级VS并从一开始构建铬吗?重建所有东西需要相当多的时间,所以我尝试采取巧妙的猜测:)对于快照,谢谢,我能够使用最新的408050测试并且能够运行它而没有我遇到的错误我自己的构建。所以这可能是我的错。
Frederik.L

是的,我能理解从一开始就重新开始的痛苦。但您必须了解您当前的配置也无法正常工作。那么为什么不尽可能尝试一切呢?谁知道这次你能找到一些更有趣的东西值得入手?
Animesh Patra

我将恢复到VS 2015 Update 2并在夜间运行一个干净的构建,看它是否有帮助,并在完成后给出一些反馈。感谢您的建议,这对我很有帮助!每次重新开始,我确实找到了新的有用配置。希望这些步骤现在更安全,因为我将项目包装在Node.js框架内。
Frederik.L

谢谢你的客气话。我希望这次你成功了。祝好运。
Animesh Patra

1
嘿,有点工作了! (见我上次更新)。唯一剩下的就是找到为什么它在发布模式下工作但在调试模式下失败。我们越来越近了!我将能够从下周一(2016-07-30)继续测试,因为我明天要参加考试,然后再去电脑。不过,我仍然可以回答有关我的构建配置的问题。
Frederik.L
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.