MetricKit MXDiagnostic 符号
MetricKit MXDiagnostic symbolication
我正在尝试实施 MetricKit,以便稍后我可以分析 MXCrashDiagnostic
和 MXHangDiagnostic
报告。但是,当我触发测试崩溃,然后执行 Debug->Simulate MetricKit Payloads
时,我总是在 dictionaryRepresentation()
中收到完全相同的结果。
这是我为 MXCrashDiagnostic 获得的示例:
[[AnyHashable("diagnosticMetaData"): {
appBuildVersion = 2;
appVersion = "1.0";
deviceType = "iPhone10,6";
exceptionCode = 0;
exceptionType = 1;
osVersion = "iPhone OS 14.0.1 (18A393)";
platformArchitecture = arm64;
regionFormat = CA;
signal = 11;
terminationReason = "Namespace SIGNAL, Code 0xb";
virtualMemoryRegionInfo = "0 is not in any region. Bytes before following region: 4000000000 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> __TEXT 0000000000000000-0000000000000000 [ 32K] r-x/r-x SM=COW ...pp/Test";
}, AnyHashable("callStackTree"): {
callStackPerThread = 1;
callStacks = (
{
callStackRootFrames = (
{
address = 74565;
binaryName = testBinaryName;
binaryUUID = "A36D6CF4-CBE8-4FB9-9DC4-C7EE8C6431CC";
offsetIntoBinaryTextSegment = 123;
sampleCount = 20;
}
);
threadAttributed = 1;
}
);
}, AnyHashable("version"): 1.0.0]]
对于 cpuExceptionDiagnostics
和 hangDiagnostics
,callStackTree
的值始终相同。
我试图通过执行命令来符号化数据:
1. cd /Path/To/Archive/myApp.xcarchive/dSYMs/myApp.app.dSYM/Contents/Resources/DWARF/
2. atos -arch arm64 -o myApp 0x00074565
但总是得到相同的结果:
atos[79918]: respawning is disabled (because DYLD_ROOT_PATH or DT_NO_RESPAWN is set), but the analysis process does not match the SDK variant of the target process 0.
Analysis of malloc zones may fail.
0x00074565 (in myApp)
我在网上找不到任何关于 xcode 中的警告或任何参数的信息
我试图遵循 this and this guides on the symbolication process, some answers were also provided to this question,但看起来我没有正确的符号化数据,即使我确实正确设置了报告。
如果有人能让我知道我遗漏了什么以及如何正确地符号化这些报告,我将不胜感激。
我想当您在 XCODE 中触发模拟 metricKit 有效负载时,它会始终提供包含 MXDiagnosticPayload 的相同数组。
Debug->Simulate MetricKit Payloads这只是一个例子。不能用atos符号化。
唯一的办法就是收集用户的有效载荷。
我正在尝试实施 MetricKit,以便稍后我可以分析 MXCrashDiagnostic
和 MXHangDiagnostic
报告。但是,当我触发测试崩溃,然后执行 Debug->Simulate MetricKit Payloads
时,我总是在 dictionaryRepresentation()
中收到完全相同的结果。
这是我为 MXCrashDiagnostic 获得的示例:
[[AnyHashable("diagnosticMetaData"): {
appBuildVersion = 2;
appVersion = "1.0";
deviceType = "iPhone10,6";
exceptionCode = 0;
exceptionType = 1;
osVersion = "iPhone OS 14.0.1 (18A393)";
platformArchitecture = arm64;
regionFormat = CA;
signal = 11;
terminationReason = "Namespace SIGNAL, Code 0xb";
virtualMemoryRegionInfo = "0 is not in any region. Bytes before following region: 4000000000 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> __TEXT 0000000000000000-0000000000000000 [ 32K] r-x/r-x SM=COW ...pp/Test";
}, AnyHashable("callStackTree"): {
callStackPerThread = 1;
callStacks = (
{
callStackRootFrames = (
{
address = 74565;
binaryName = testBinaryName;
binaryUUID = "A36D6CF4-CBE8-4FB9-9DC4-C7EE8C6431CC";
offsetIntoBinaryTextSegment = 123;
sampleCount = 20;
}
);
threadAttributed = 1;
}
);
}, AnyHashable("version"): 1.0.0]]
对于 cpuExceptionDiagnostics
和 hangDiagnostics
,callStackTree
的值始终相同。
我试图通过执行命令来符号化数据:
1. cd /Path/To/Archive/myApp.xcarchive/dSYMs/myApp.app.dSYM/Contents/Resources/DWARF/
2. atos -arch arm64 -o myApp 0x00074565
但总是得到相同的结果:
atos[79918]: respawning is disabled (because DYLD_ROOT_PATH or DT_NO_RESPAWN is set), but the analysis process does not match the SDK variant of the target process 0.
Analysis of malloc zones may fail.
0x00074565 (in myApp)
我在网上找不到任何关于 xcode 中的警告或任何参数的信息 我试图遵循 this and this guides on the symbolication process, some answers were also provided to this question,但看起来我没有正确的符号化数据,即使我确实正确设置了报告。
如果有人能让我知道我遗漏了什么以及如何正确地符号化这些报告,我将不胜感激。
我想当您在 XCODE 中触发模拟 metricKit 有效负载时,它会始终提供包含 MXDiagnosticPayload 的相同数组。
Debug->Simulate MetricKit Payloads这只是一个例子。不能用atos符号化。
唯一的办法就是收集用户的有效载荷。