Med Ismail Bennani 13aa780f37 [lldb/crashlog] Remove 'process_path' parsing logic
In can happen when creating stackshot crash report that that key is missing.

Moreover, we try to parse that key but don't use it, or need it, since we
fetch images and symbolicate the stackframes using the binaries UUIDs.

This is why this patch removes everything that is related to the
`process_path`/`procPath` parsing.

rdar://95054188

Differential Revision: https://reviews.llvm.org/D131033

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2022-08-09 21:01:37 -07:00

45 lines
2.4 KiB
Python

# -*- python -*-
# RUN: cd %S/../../../../../examples/python && cat %s | %lldb 2>&1 > %t.out
# RUN: cat %t.out | FileCheck %S/Inputs/Assertion.check
script
import crashlog
import json
parser = crashlog.JSONCrashLogParser("", "", False)
process_info_json = json.loads('{"pid" : 287, "procName" : "mediaserverd"}')
parser.parse_process_info(process_info_json)
assert parser.crashlog.process_id == 287
assert parser.crashlog.process_identifier == "mediaserverd"
crash_reason_json = json.loads('{"type" : "EXC_BAD_ACCESS", "signal" : "SIGSEGV", "subtype" : "KERN_INVALID_ADDRESS"}')
assert parser.parse_crash_reason(crash_reason_json) == "EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS)"
crash_reason_json = json.loads('{"type" : "EXC_BAD_ACCESS", "signal" : "SIGSEGV"}')
assert parser.parse_crash_reason(crash_reason_json) == "EXC_BAD_ACCESS (SIGSEGV)"
crash_reason_json = json.loads('{"type" : "EXC_BAD_ACCESS", "signal" : "SIGSEGV", "codes" : "0x0000000000000000, 0x0000000000000000"}')
assert parser.parse_crash_reason(crash_reason_json) == "EXC_BAD_ACCESS (SIGSEGV) (0x0000000000000000, 0x0000000000000000)"
thread_state_json = json.loads('{"x":[268451845,117442566],"lr":7309751904,"cpsr":1073741824,"fp":6093236784,"sp":6093236704,"esr":1442840704,"pc":7309755088}')
registers = parser.parse_thread_registers(thread_state_json)
assert registers['x0'] == 268451845
assert registers['x1'] == 117442566
assert registers['lr'] == 7309751904
assert registers['cpsr'] ==1073741824
assert registers['fp'] == 6093236784
assert registers['sp'] == 6093236704
assert registers['esr'] == 1442840704
assert registers['pc'] == 7309755088
parser.data = json.loads('{"usedImages":[["f4d85377-f215-3da3-921e-3fe870e622e9",7309737984,"P"]],"legacyInfo":{"imageExtraInfo":[{"size":204800,"arch":"arm64e","path":"/usr/lib/system/libsystem_kernel.dylib","name":"libsystem_kernel.dylib"}]}}')
thread_json = json.loads('[{"triggered":true,"id":3835,"queue":"com.apple.bwgraph.devicevendor","frames":[[0,101472],[0,408892]]}]')
parser.parse_threads(thread_json)
assert len(parser.crashlog.threads) == 1
assert parser.crashlog.threads[0].queue == "com.apple.bwgraph.devicevendor"
assert len(parser.crashlog.threads[0].frames) == 2
assert parser.crashlog.threads[0].frames[0].pc == 7309839456
assert parser.crashlog.threads[0].frames[0].description == 101472
exit()