aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/ScriptInterpreter/Python
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/Shell/ScriptInterpreter/Python')
-rw-r--r--lldb/test/Shell/ScriptInterpreter/Python/Crashlog/json.test5
-rw-r--r--lldb/test/Shell/ScriptInterpreter/Python/Crashlog/patch-crashlog.py7
2 files changed, 12 insertions, 0 deletions
diff --git a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/json.test b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/json.test
index a514b07..0c522e9 100644
--- a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/json.test
+++ b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/json.test
@@ -1,8 +1,13 @@
# RUN: %clang_host -g %S/Inputs/test.c -o %t.out
+
# RUN: cp %S/Inputs/a.out.ips %t.crash
# RUN: python %S/patch-crashlog.py --binary %t.out --crashlog %t.crash --offsets '{"main":20, "bar":9, "foo":16}' --json
# RUN: %lldb %t.out -o 'command script import lldb.macosx.crashlog' -o 'crashlog %t.crash' 2>&1 | FileCheck %s
+# RUN: cp %S/Inputs/a.out.ips %t.nometadata.crash
+# RUN: python %S/patch-crashlog.py --binary %t.out --crashlog %t.nometadata.crash --offsets '{"main":20, "bar":9, "foo":16}' --json --no-metadata
+# RUN: %lldb %t.out -o 'command script import lldb.macosx.crashlog' -o 'crashlog %t.nometadata.crash' 2>&1 | FileCheck %s
+
# CHECK: Thread[0] Crashing Thread Name EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000000000)
# CHECK: [ 0] {{.*}}out`foo + 16 at test.c
# CHECK: [ 1] {{.*}}out`bar + 8 at test.c
diff --git a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/patch-crashlog.py b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/patch-crashlog.py
index 28396c5..56558bc 100644
--- a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/patch-crashlog.py
+++ b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/patch-crashlog.py
@@ -49,6 +49,9 @@ class CrashLogPatcher:
self.data = self.data.replace(
"@{}@".format(symbol), str(representation(patch_addr)))
+ def remove_metadata(self):
+ self.data= self.data[self.data.index('\n') + 1:]
+
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Crashlog Patcher')
@@ -56,6 +59,7 @@ if __name__ == '__main__':
parser.add_argument('--crashlog', required=True)
parser.add_argument('--offsets', required=True)
parser.add_argument('--json', default=False, action='store_true')
+ parser.add_argument('--no-metadata', default=False, action='store_true')
args = parser.parse_args()
offsets = json.loads(args.offsets)
@@ -68,5 +72,8 @@ if __name__ == '__main__':
p.patch_uuid()
p.patch_addresses()
+ if args.no_metadata:
+ p.remove_metadata()
+
with open(args.crashlog, 'w') as file:
file.write(p.data)