c – chromium-browser在module_list.cc中构建致命错误:检查失
我一直在尝试在
Windows 10上构建chrome,但是我在运行时遇到了奇怪的错误,这似乎是由该模式引起的:
void CheckFreeLibrary(HMODULE module) { BOOL result = ::FreeLibrary(module); DCHECK(result); } Chromium启动几秒钟后会显示第一个错误.这就是它所说的: [5904:9192:0726/025753:FATAL:module_list.cc(18)] Check failed: result. Backtrace: base:debug:StackTrace:StackTrace [0x0000....] (e:projectscloneschromiumsrcbasedebugstack_trace.cc) ... 由于我无法复制粘贴整个堆栈,我将加入一个截然不同的截图: 我成功构建了最新版本,或者至少它看起来很成功,因为在使用Building instructions中推荐的工具链进行编译时没有出现任何错误. 幸运的是,第一个错误不是模态的,之后可以稍微浏览一下.然后,如果我将应用程序置于重负载(例如Facebook新闻源),它将突然停止响应.鼠标悬停效果将不再显示,重新加载页面将导致无限加载.右键单击某些页面时,此行为也是可重现的(例如:google的主页有时会这样做). 有什么可以解释这个没有默认配置的“开箱即用”?如何解决这个问题? P.S.:这个问题是对这个问题的补充: P.2.2.:我正在尝试从这个微小的变化开始重建,看看它是否更好.不过,大约10个小时后我就可以看到它了(是的,在我目前的设置上构建是痛苦的). void CheckFreeLibrary(HMODULE module) { BOOL result = ::FreeLibrary(module); if (!result) { result = ::UnmapViewOfFile(module); } DCHECK(result); } 更新 – 2016/07/29 使用CheckFreeLibrary进行测试仍然在调试中失败,但我终于找到了解决构建中问题的方法.请参阅超级用户question中的更新3.我所做的是通过gn args将构建配置为发布模式.显然,这几乎是不可能调试的,因此尚未找到解决方案/解释为什么它在调试模式下失败.不过现在这已经非常接近了. 更新2 – 2016/08/13 重新开始再次使用存储库中的最新版本再次调试版本,这次我确信找到了一些东西.事实上,在我经历了更新,生成和构建的常规过程之后,我注意到Windows Kit调试器中的一些win-core- * DLL库没有复制到src文件夹,但其中一个被认为是在链接过程中.作为预防措施,我只是将它们全部复制以确保存在任何延迟加载或构建依赖性.铬首次推出时,错误没有出现,并认为它正在解决问题.但是,右键单击Google主页具有相同的效果(无响应,然后浏览器不再显示页面).关闭并重新打开后,错误开始显现. 有没有人经历过这种情况?我会很高兴看到“在Linux上做它,它在这个平台上运行得更好”.不过,我不愿意在不知道它会更好的情况下做到这一点. 解决方法
所以
BOOL result = ::FreeLibrary(module); 在调试版本中失败,看看你是否有 DWORD WINAPI GetLastError(void); 得到真正的错误. 我猜可以
也许一些DEBUG语句正在改变模块的价值? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |