【问题标题】:How to read/translate macOS 12 (Monterey) .ips crash files?如何读取/翻译 macOS 12 (Monterey) .ips 崩溃文件?
【发布时间】:2021-12-19 19:11:35
【问题描述】:

从 macOS 12 (Monterey) 开始,系统显然将崩溃文件写入为.ips 文件,而不是传统的.crash 文件格式。

该文件似乎包含 JSON 数据:

{"app_name":"Helper","timestamp":"2021-10-30 18:49:32.00 +0100","app_version":"3.0.0(66) beta","slice_uuid":"673198dd-94ac-31a7-9e81-09fe6c781255","build_version":"3.0.0.66","platform":1,"bundleID":"com.dislt.helper","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.0.1 (21A559)","incident_id":"CC03C2EC-C1D4-4F6E-AA1F-6C4EC555D6B8","name":"Helper"}
{
  "uptime" : 91000,
  "procLaunch" : "2021-10-30 18:49:29.7791 +0100",
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro14,3",
  "procStartAbsTime" : 91844701503187,
  "coalitionID" : 1244,
  "osVersion" : {
    "train" : "macOS 12.0.1",
    "build" : "21A559",
    "releaseType" : "User"
  },
  "captureTime" : "2021-10-30 18:49:32.4572 +0100",
  "incident" : "92A89610-D70A-4D93-A974-A9018BB5C72A",
  "bug_type" : "309",
  "pid" : 77765,
  "procExitAbsTime" : 91847378271126,
  "cpuType" : "X86-64",
  "procName" : "Helper",
  ...

当我预览文件或在控制台应用中打开它时,会自动生成传统的崩溃报告:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Helper [77765]
Path:                  /Users/USER/Library/Application Support/Helper.app/Contents/MacOS/Helper
Identifier:            com.distl.helper
Version:               3.0.0(66) beta (3.0.0.66)
Code Type:             X86-64 (Native)
Parent Process:        TestBead [77726]
Responsible:           TestBead [77726]
User ID:               501

Date/Time:             2021-10-30 18:49:32.4572 +0100
OS Version:            macOS 12.0.1 (21A559)
Report Version:        12
Bridge OS Version:     3.0 (14Y908)
Anonymous UUID:        CC03C2EC-C1D4-4F6E-AA1F-6C4EC555D6B8


Time Awake Since Boot: 91000 seconds

System Integrity Protection: enabled

Crashed Thread:        1  Dispatch queue: com.apple.NSXPCConnection.user.anonymous.77726

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00007f780071a000
Exception Codes:       0x0000000000000001, 0x00007f780071a000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [77765]
...

我有自动扫描这些崩溃报告文件的客户支持和开发工具,我想知道是否有办法将 JSON 数据自动转换回传统的崩溃报告格式?

我想这样做 (a) 避免重写我的崩溃报告扫描工具(尽管这并非不可能),并且 (b) 自动将这些文件转换为人类可读的格式,而无需打开控制台应用程序中的文件。

【问题讨论】:

标签: json macos crash-reports


【解决方案1】:

我遇到了同样的问题。我自己还没有尝试过,但有人已经创建了一个ips2crash 命令,可在GitHub 获得。顾名思义,它应该将.ips 文件转换为(现在的)旧版崩溃报告格式。

【讨论】:

  • 谢谢!我在最初的搜索中没有找到这个。我下载了该项目,发现它最初不会解析我的崩溃报告。但是我发现了问题,修复了它,并向原作者发送了 pull request。
  • 您是否遇到过版本号为空的报告?见stackoverflow.com/q/70584180/43615
  • 我没有。虽然我会注意到应用程序版本是从应用程序包信息中获得的,但裸可执行文件不会得到一个。此外,对于无法识别、定位、读取、解析捆绑包的任何情况......我确实有一个问题,即当前版本的 ips2crash 因为它不解析应用程序特定的回溯,如果你使用许多延迟块(就像我的应用程序一样)几乎是唯一可以找到崩溃代码的地方。这个周末我需要花一些时间来研究一下。
猜你喜欢
  • 2022-12-12
  • 1970-01-01
  • 2021-08-27
  • 2014-05-08
  • 2021-12-12
  • 2021-12-15
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
相关资源
最近更新 更多