有人知道是否有一种实用的方法可以确定 Google Chrome 上偶尔出现的“Aw Snap!”消息的原因吗?Chrome 是否有我可以参考的错误日志?我怀疑这个问题是由代码中的递归循环引起的,然后它吞噬了所有内存?有什么方法可以确认这一点吗?
答案1
有,请参阅此处的解释:对于 Chrome 中的普通登录,您可以尝试:
使用Chrome 的日志功能:
要启用日志记录,请使用以下命令行标志启动 Chrome:
--enable-logging --v=1
输出将保存到文件
chrome_debug.log
中Chrome 的用户数据目录。日志文件的位置可以被
CHROME_LOG_FILE
环境变量覆盖。完整的标志列表请查阅:Google Chrome 命令行开关。
或者使用JavaScript 控制台:
按Ctrl+ Shift+ J(Windows / Linux) 或Cmd+ Option+ J(Mac)。
答案2
Chrome 开发者官方 Twitter 帐户链接到一个网站它可以帮助您调试“Aw snap”页面:http://www.chromium.org/for-testers/enable-logging
建议使用以下标志启动 Chrome:
--enable-logging --v=1
如果您这样做,则可以从chrome_debug.log
Chrome 的用户数据目录(在的父目录中Default/
)或二进制构建文件夹(out\Debug
)中的文件中获取崩溃日志(如果您使用的是调试版本)。
答案3
这哎呀,啪!页面通常与流程相关分段故障崩溃可能与软件错误要确定原因,您可以启用日志记录(如其他答案中所建议的)或分析核心转储文件的回溯(在苹果系统,Linux例如Ubuntu)。
如果你不知道原因(例如堆栈跟踪仅包含内存地址),你可以在Chrome 错误追踪系统(或者仔细检查是否已经存在)。报告时,您应该转到chrome://crashes/
页面上传并包含崩溃 ID,以便 Chrome 维护人员可以将内存地址转换为调试符号。
或者你也可以解码崩溃转储你自己。
也可以看看:Google Chrome 崩溃转储位于何处?
为了简化上述内容,以下是页面崩溃的主要原因:
你已经找到了漏洞(无论是在网站上还是通过网络浏览器本身)。
网站错误
示例:JavaScript VM 已达到最大分配内存(内存不足崩溃)。
要检查这一点,请运行开发者工具并检查记忆tab。如果是这种情况,代码应该在潜在的内存不足崩溃之前自动暂停(例如问题 810015)。如果是,请向网站所有者报告问题,或者分析 JS 代码以查找错误。
浏览器错误
您已达到系统中打开文件的最大数量(请参阅:#787381)。
在 Linux/Unix/macOS 上,要验证这一点,请运行:
sysctl -a | grep files
并检查是否
kern.num_files
达到了的限制kern.maxfiles
。如果是这种情况,请运行以下命令来增加限制:
sysctl -w kern.maxfiles=20480 which launchctl && launchctl limit maxfiles 65536 unlimited which ulimit && ulimit -c unlimited
您可能感染了某些恶意软件/病毒,它们会改变您的 Chrome 文件并导致崩溃。
- 你可以吃一些硬件内存相关问题. 因此运行一些测试(例如
memtest
)。
苹果系统
要显示 Chrome 的日志,请运行:
log stream --level debug --predicate 'processImagePath contains "Google"'
或者运行安慰应用程序,您还可以在其中检查任何崩溃转储(或签入~/Library/Logs/DiagnosticReports
)。请参阅:在 Chrome 中调试“Aw, Snap!”错误
调试
如果以上方法均无效,您可以考虑从源代码编译 Chrome(需要很长时间),然后直接从终端运行。之后,每个“Aw, Snap!”错误后面都应该有完整的堆栈跟踪,包括发生该错误的源代码文件中的函数和行。
答案4
我是一名网络开发人员,我迫不及待地希望我的所有客户都更新 Google Chrome,所以......我们一直在调试这个问题并找到了解决方案!
似乎是一个 CSS 简单易修复的问题。似乎在 Chrome 的某些更新版本中,他们禁止某些 html 标签包含 BEFORE 和 AFTER 内容。其中一个标签是 Fieldset。我们的团队没有发现任何其他标签,但删除 fieldset:before{ content: ''; ... } 可以立即解决问题!
如果您发现任何其他标签,请在此处发布。如果您遇到同样的问题,请在 CSS 代码中搜索 :before 和 :after 语句,应该很容易修复。