This patch makes interactive mode as the default when using the crashlog command. It replaces the existing `-i|--interactive` flag with a new `-m|--mode` option, that can either be `interactive` or `batch`. By default, when the option is not explicitely set by the user, the interactive mode is selected, however, lldb will fallback to batch mode if the command interpreter is not interactive or if stdout is not a tty. This also adds some railguards to prevent users from using interactive only options with the batch mode and updates the tests accordingly. rdar://97801509 Differential Revision: https://reviews.llvm.org/D141658 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
22 lines
1.2 KiB
Plaintext
22 lines
1.2 KiB
Plaintext
# 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 --mode batch %t.crash' 2>&1 | FileCheck %s
|
|
# RUN: %lldb %t.out -o 'command script import lldb.macosx.crashlog' -o 'crashlog --mode batch -c %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 --mode batch %t.nometadata.crash' 2>&1 | FileCheck %s
|
|
|
|
# CHECK: "crashlog" {{.*}} commands have been installed, use the "--help" options on these commands
|
|
|
|
# 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
|
|
# CHECK: [ 2] {{.*}}out`main + 19 at test.c
|
|
# CHECK: rbp = 0x00007ffeec22a530
|
|
# CHECK: tmp2 = 0x0000000000000008
|
|
# CHECK: invalid foo
|
|
# CHECK: invalid bar
|