如何使用 JSON 分析 iPhone 崩溃日志
How to analyse iPhone crash log with JSON
我得到了这样的崩溃日志:
{"timestamp":"2017-01-05 22:29:03.03 +0800","bug_type":"298","os_version":"iPhone OS 9.3.2 (13F69)"}
{
"crashReporterKey" : "6e088e6d206ce6025a40eacd5ea68779dc5ac344",
"kernel" : "Darwin Kernel Version 15.5.0: Mon Apr 18 16:44:06 PDT 2016; root:xnu-3248.50.21~4\/RELEASE_ARM64_T7000",
"product" : "iPhone7,2",
"incident" : "C106CE8A-F492-47FF-BEA9-293E6ACFE201",
"date" : "2017-01-05 22:29:03.03 +0800",
"build" : "iPhone OS 9.3.2 (13F69)",
"timeDelta" : 3377,
"memoryStatus" : {
"compressorSize" : 30099,
"pageSize" : 4096,
"compressions" : 719018,
"memoryPages" : {
"active" : 33364,
"throttled" : 0,
"fileBacked" : 24001,
"wired" : 169666,
"anonymous" : 27027,
"purgeable" : 6,
"inactive" : 15716,
"free" : 2836,
"speculative" : 1948
},
"uncompressed" : 81552,
"decompressions" : 333878
},
"largestProcess" : "MYAPP",
"processes" : [
{
"rpages" : 556,
"states" : [
"daemon",
"idle"
],
"name" : "assetsd",
"pid" : 839,
"reason" : "vm-pageshortage",
"fds" : 50,
"uuid" : "MYUUID",
"purgeable" : 0,
"cpuTime" : 0.373819,
"lifetimeMax" : 970
},
{
"rpages" : 231,
"states" : [
"daemon",
"idle"
],
"name" : "followupd",
"pid" : 851,
"reason" : "vm-pageshortage",
"fds" : 50,
"uuid" : "MYUUID",
"purgeable" : 0,
"cpuTime" : 0.04115,
"lifetimeMax" : 487
},
and a lot more...
没有必要符号化它,因为没有显示调用堆栈。
我只是 运行 我的应用程序播放了大约一个小时的视频,然后就出现了崩溃。
不是每次都这样,但经常这样。
这样的日志应该怎么读?
任何人都可以向我解释一下哪些键是重要的以及它们在大 json 中的含义吗?
您的应用程序崩溃,因为它 运行 内存不足。我不知道你的应用程序是做什么的,但它要么有内存泄漏,要么 monitoring/releasing 内存不正确。
根据 Apple 文档,它说 [vm-pageshortage]
的原因是 "The process was killed due to memory pressure."
您可以在此处阅读有关崩溃报告的 Apple 文档:https://developer.apple.com/library/content/technotes/tn2151/_index.html
@dstudeba 是对的,当您播放视频时,您的 CPU 内存消耗比预期的要多。有时会发生
- 当有大量数据来自服务器时。
- 当您没有管理应用程序中的内存时。
更多详情:Analyzing Crash Reports and MemoryMgmt
我得到了这样的崩溃日志:
{"timestamp":"2017-01-05 22:29:03.03 +0800","bug_type":"298","os_version":"iPhone OS 9.3.2 (13F69)"}
{
"crashReporterKey" : "6e088e6d206ce6025a40eacd5ea68779dc5ac344",
"kernel" : "Darwin Kernel Version 15.5.0: Mon Apr 18 16:44:06 PDT 2016; root:xnu-3248.50.21~4\/RELEASE_ARM64_T7000",
"product" : "iPhone7,2",
"incident" : "C106CE8A-F492-47FF-BEA9-293E6ACFE201",
"date" : "2017-01-05 22:29:03.03 +0800",
"build" : "iPhone OS 9.3.2 (13F69)",
"timeDelta" : 3377,
"memoryStatus" : {
"compressorSize" : 30099,
"pageSize" : 4096,
"compressions" : 719018,
"memoryPages" : {
"active" : 33364,
"throttled" : 0,
"fileBacked" : 24001,
"wired" : 169666,
"anonymous" : 27027,
"purgeable" : 6,
"inactive" : 15716,
"free" : 2836,
"speculative" : 1948
},
"uncompressed" : 81552,
"decompressions" : 333878
},
"largestProcess" : "MYAPP",
"processes" : [
{
"rpages" : 556,
"states" : [
"daemon",
"idle"
],
"name" : "assetsd",
"pid" : 839,
"reason" : "vm-pageshortage",
"fds" : 50,
"uuid" : "MYUUID",
"purgeable" : 0,
"cpuTime" : 0.373819,
"lifetimeMax" : 970
},
{
"rpages" : 231,
"states" : [
"daemon",
"idle"
],
"name" : "followupd",
"pid" : 851,
"reason" : "vm-pageshortage",
"fds" : 50,
"uuid" : "MYUUID",
"purgeable" : 0,
"cpuTime" : 0.04115,
"lifetimeMax" : 487
},
and a lot more...
没有必要符号化它,因为没有显示调用堆栈。
我只是 运行 我的应用程序播放了大约一个小时的视频,然后就出现了崩溃。
不是每次都这样,但经常这样。
这样的日志应该怎么读?
任何人都可以向我解释一下哪些键是重要的以及它们在大 json 中的含义吗?
您的应用程序崩溃,因为它 运行 内存不足。我不知道你的应用程序是做什么的,但它要么有内存泄漏,要么 monitoring/releasing 内存不正确。
根据 Apple 文档,它说 [vm-pageshortage]
的原因是 "The process was killed due to memory pressure."
您可以在此处阅读有关崩溃报告的 Apple 文档:https://developer.apple.com/library/content/technotes/tn2151/_index.html
@dstudeba 是对的,当您播放视频时,您的 CPU 内存消耗比预期的要多。有时会发生
- 当有大量数据来自服务器时。
- 当您没有管理应用程序中的内存时。
更多详情:Analyzing Crash Reports and MemoryMgmt