如何确定导致 Chrome 显示“哎呀,糟糕”对话框的原因

如何确定导致 Chrome 显示“哎呀,糟糕”对话框的原因

有人知道是否有一种实用的方法可以确定 Google Chrome 上偶尔出现的“Aw Snap!”消息的原因吗?Chrome 是否有我可以参考的错误日志?我怀疑这个问题是由代码中的递归循环引起的,然后它吞噬了所有内存?有什么方法可以确认这一点吗?

答案1

有,请参阅此处的解释:对于 Chrome 中的普通登录,您可以尝试:

答案2

Chrome 开发者官方 Twitter 帐户链接到一个网站它可以帮助您调试“Aw snap”页面:http://www.chromium.org/for-testers/enable-logging

建议使用以下标志启动 Chrome:

--enable-logging --v=1

如果您这样做,则可以从chrome_debug.logChrome 的用户数据目录(在的父目录中Default/)或二进制构建文件夹(out\Debug)中的文件中获取崩溃日志(如果您使用的是调试版本)。

答案3

哎呀,啪!页面通常与流程相关分段故障崩溃可能与软件错误要确定原因,您可以启用日志记录(如其他答案中所建议的)或分析核心转储文件的回溯(在苹果系统Linux例如Ubuntu)。

如果你不知道原因(例如堆栈跟踪仅包含内存地址),你可以在Chrome 错误追踪系统(或者仔细检查是否已经存在)。报告时,您应该转到chrome://crashes/页面上传并包含崩溃 ID,以便 Chrome 维护人员可以将内存地址转换为调试符号。

或者你也可以解码崩溃转储你自己。

也可以看看:Google Chrome 崩溃转储位于何处?


为了简化上述内容,以下是页面崩溃的主要原因:

  • 你已经找到了漏洞(无论是在网站上还是通过网络浏览器本身)。

    • 网站错误

      • 示例:JavaScript VM 已达到最大分配内存(内存不足崩溃)。

        要检查这一点,请运行开发者工具并检查记忆tab。如果是这种情况,代码应该在潜在的内存不足崩溃之前自动暂停(例如问题 810015)。如果是,请向网站所有者报告问题,或者分析 JS 代码以查找错误。

    • 浏览器错误

      • 考虑禁用扩展或运行隐身模式。
      • 考虑移除缓存文件
      • 报告错误
      • 重新安装浏览器。
      • 使用其他版本的 Chrome,例如开发或者金丝雀渠道。
      • 使用不同的浏览器,例如 Epic、Firefox、Opera、Brave、Waterfox、Torch 或其他。
      • 如果问题重复出现,你可以尝试重新编译Chrome 源代码使用调试符号并分析堆栈跟踪或报告它。
  • 您已达到系统中打开文件的最大数量(请参阅:#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 语句,应该很容易修复。

最近添加到此处: https://stackoverflow.com/questions/69161461/google-chrome-status-access-violation-error/69161462#69161462

相关内容