【问题标题】:Logging JavaScript errors from Safari after crash崩溃后从 Safari 记录 JavaScript 错误
【发布时间】:2015-10-19 17:04:08
【问题描述】:

我正在尝试查找导致 Safari 8.0.7 和 Yosemite 10.10.4 反复出现段错误和崩溃的网站问题。到目前为止,我们从崩溃报告中收集到的只是它与 JavaScript 相关,但我们无法进一步追踪它。

我希望在检查开发人员工具的控制台输出时找到一些有用的东西,但由于该窗格在浏览器出现时会关闭,因此并没有太大帮助。有谁知道是否有办法将 JavaScript 控制台日志从 Safari 会话通过管道传输到崩溃后我可以查看的文本文件?

编辑 所以我从崩溃报告(来自控制台)中得到的只是这个截断的信息

Process:               com.apple.WebKit.WebContent [54411]
Path:                      /System/Library/StagedFrameworks/Safari/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
Identifier:            com.apple.WebKit.WebContent
Version:               10600 (10600.6.3)
Build Info:            WebKit2-7600006003000000~2
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Safari [54397]
User ID:               502

Date/Time:             2015-07-28 14:30:14.094 -0700
OS Version:            Mac OS X 10.10.3 (14D136)
Report Version:        11
Anonymous UUID:        03F3B4F1-21D9-9B59-DB95-0CA2A9029887

Sleep/Wake UUID:       7638EA85-16D2-4E75-9913-0ACFA88EDAE8

Time Awake Since Boot: 540000 seconds
Time Since Wake:       19000 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000000000000e

VM Regions Near 0xe:
--> 
    __TEXT                 0000000103423000-0000000103424000 [    4K]   r-x/rwx SM=COW     /System/Library/StagedFrameworks/Safari/WebKit.framework/Versions/A/XPCServ ices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebCon tent

...

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore        0x0000000103fbab54   operationConvertJSValueToBoolean + 180
1   ???                             0x00005de77c8d56ab 0 + 103248808466091
2   ???                             0x00005de77c9753e1 0 + 103248809120737
3   ???                             0x00005de77c998a27 0 + 103248809265703
4   ???                             0x00005de77c601a3a 0 + 103248805501498
5   ???                             0x00005de77c6bb05a 0 + 103248806260826
6   ???                             0x00005de77c634e35 0 + 103248805711413
7   ???                             0x00005de77c75c760 0 + 103248806922080
8   ???                             0x00005de77c6a9dfa 0 + 103248806190586
9   ???                             0x00005de77c65eace 0 + 103248805882574
10  ???                             0x00005de77c601a3a 0 + 103248805501498
11  com.apple.JavaScriptCore        0x00000001040314a1 callToJavaScript + 311
12  com.apple.JavaScriptCore        0x0000000103fb55f3 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 35

任何关于如何进一步深入研究的想法也将不胜感激。

【问题讨论】:

  • 您尝试过 try {} catch(e) {} 吗?如果您被允许或能够编辑源代码,您可能会以某种方式在此轨道上找到它。
  • 打开开发者工具后,您的网站是否正常工作?我们在使用相同的 safari 和 OSX 版本时遇到了同样的问题。当我们打开 Web Inspector 控制台时,一切正常。

标签: javascript angularjs logging safari


【解决方案1】:

如果您使用的是 Mac,请转到 应用程序 > 实用程序 > 控制台,然后在左侧边栏中选择正确的日志。您将能够看到那里发生了什么。

【讨论】:

  • 不幸的是,这只是给了我崩溃报告,除了“javascript 吓坏了并爆炸了”之外,这并没有让我走得更远
  • 正如@Felix Guerrero 指出的那样,您可以在整个代码中设置断点(如果您的代码库不是很大),或者在您认为可能有更多问题的部分设置断点,希望能帮助您找出答案javascript使浏览器崩溃的地方。如果您可以与我们分享网址,我们也会为您提供帮助:)
【解决方案2】:

如果您知道在哪里查看您的代码,您可以使用开发人员工具设置一些断点。如果您想要更自动化的东西,您可以使用trackjs 跟踪 JS 错误。您可能需要添加一些额外的代码行,但它会保留错误日志(客户端信息,如浏览器版本、操作系统和引发错误的函数 (loc))。还要查看您 Mac 上的控制台。

您是否尝试在不止一台 Mac 上重现崩溃?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多