iosdebuggingxcode12symbolicatecrashsymbolicate

MetricKit MXDiagnostic symbolication


I am trying to implement MetricKit so later I could analyze MXCrashDiagnostic and MXHangDiagnostic reports. However when I am triggering a test crash, and then doing Debug->Simulate MetricKit Payloads I always receive absolutely same result in dictionaryRepresentation(). Here is an example of what I get for 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]]

For cpuExceptionDiagnostics and hangDiagnostics the value for callStackTree is always the same.

I tried to symbolicate the the data, by executing commands:

1. cd /Path/To/Archive/myApp.xcarchive/dSYMs/myApp.app.dSYM/Contents/Resources/DWARF/
2. atos -arch arm64 -o myApp 0x00074565

But always get the same result:

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)

I have found nothing online about the warning nor any of the params in xcode I tried to follow this and this guides on the symbolication process, some answers were also provided to this question, but it looks like I don't have the right data for symbolication, even though I did set up reports correctly.

I would appreciate if someone could let me know what am I missing and how to properly symbolicate these reports.


Solution

  • I guess that it will always provide the same array contains MXDiagnosticPayload when you trigger the simulate metricKit payloads in XCODE.