|
2 | 2 | // RUN: %target-build-swift %s -Onone -g -o %t/CrashWithThreads |
3 | 3 | // RUN: %target-codesign %t/CrashWithThreads |
4 | 4 | // RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no,swift-backtrace=%backtracer %target-run %t/CrashWithThreads 2>&1 || true) | %FileCheck -vv %s -dump-input-filter=all |
| 5 | +// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no,swift-backtrace=%backtracer,threads=all %target-run %t/CrashWithThreads 2>&1 || true) | %FileCheck -vv %s -dump-input-filter=all --check-prefix WITHTHREADSOPT |
5 | 6 |
|
6 | 7 | // UNSUPPORTED: use_os_stdlib |
7 | 8 | // UNSUPPORTED: back_deployment_runtime |
@@ -80,8 +81,57 @@ while (true) { |
80 | 81 | // CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} closure #{{[0-9]}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
81 | 82 | // CHECK-NEXT: 3 [ra] [thunk] 0x{{[0-9a-f]+}} @objc closure #{{[0-9]}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}<compiler-generated> |
82 | 83 |
|
| 84 | +// CHECK: Thread 0{{( ".*")?}}: |
| 85 | + |
| 86 | +// CHECK: 0 0x{{[0-9a-f]+}} __semwait_signal + {{[0-9]+}} in libsystem_kernel.dylib |
| 87 | +// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 88 | +// CHECK-NEXT: 2 [ra] [system] 0x{{[0-9a-f]+}} start + {{[0-9]+}} in dyld |
| 89 | + |
| 90 | +// CHECK: Thread {{[1-9][0-9]*( ".*")?}}: |
| 91 | + |
| 92 | +// CHECK: 0 0x{{[0-9a-f]+}} __semwait_signal + {{[0-9]+}} in libsystem_kernel.dylib |
| 93 | +// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} closure #{{[0-9]*}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 94 | +// CHECK-NEXT: 2 [ra] [thunk] 0x{{[0-9a-f]+}} @objc closure #{{[0-9]*}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at /<compiler-generated> |
| 95 | +// CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} _pthread_start + {{[0-9]+}} in libsystem_pthread.dylib |
| 96 | + |
| 97 | + |
83 | 98 | // CHECK: Registers: |
84 | 99 |
|
85 | 100 | // CHECK: Images ({{[0-9]+}} omitted): |
86 | 101 |
|
87 | 102 | // CHECK: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}CrashWithThreads{{ +}}{{.*}}/CrashWithThreads |
| 103 | + |
| 104 | +// WITHTHREADSOPT: *** Program crashed: Bad pointer dereference at 0x{{0+}}4 *** |
| 105 | + |
| 106 | +// make sure there are no threads before the crashing thread (rdar://164566321) |
| 107 | + |
| 108 | +// we expect the first thread not to be thread 0, it should be the crashing thread instead |
| 109 | +// WITHTHREADSOPT-NOT: Thread 0{{( ".*")?}}: |
| 110 | + |
| 111 | +// we expect a crash on a thread other than 0 |
| 112 | +// WITHTHREADSOPT: Thread {{[1-9][0-9]*}} {{(".*" )?}}crashed: |
| 113 | + |
| 114 | +// WITHTHREADSOPT: 0 0x{{[0-9a-f]+}} reallyCrashMe() + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 115 | +// WITHTHREADSOPT-NEXT: 1 [ra] 0x{{[0-9a-f]+}} crashMe() + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 116 | +// WITHTHREADSOPT-NEXT: 2 [ra] 0x{{[0-9a-f]+}} closure #{{[0-9]}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 117 | +// WITHTHREADSOPT-NEXT: 3 [ra] [thunk] 0x{{[0-9a-f]+}} @objc closure #{{[0-9]}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}<compiler-generated> |
| 118 | + |
| 119 | +// WITHTHREADSOPT: Thread 0{{( ".*")?}}: |
| 120 | + |
| 121 | +// WITHTHREADSOPT: 0 0x{{[0-9a-f]+}} __semwait_signal + {{[0-9]+}} in libsystem_kernel.dylib |
| 122 | +// WITHTHREADSOPT-NEXT: 1 [ra] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 123 | +// WITHTHREADSOPT-NEXT: 2 [ra] [system] 0x{{[0-9a-f]+}} start + {{[0-9]+}} in dyld |
| 124 | + |
| 125 | +// WITHTHREADSOPT: Thread {{[1-9][0-9]*( ".*")?}}: |
| 126 | + |
| 127 | +// WITHTHREADSOPT: 0 0x{{[0-9a-f]+}} __semwait_signal + {{[0-9]+}} in libsystem_kernel.dylib |
| 128 | +// WITHTHREADSOPT-NEXT: 1 [ra] 0x{{[0-9a-f]+}} closure #{{[0-9]*}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at {{.*}}/CrashWithThreads |
| 129 | +// WITHTHREADSOPT-NEXT: 2 [ra] [thunk] 0x{{[0-9a-f]+}} @objc closure #{{[0-9]*}} in spawnThread(_:) + {{[0-9]+}} in CrashWithThreads at /<compiler-generated> |
| 130 | +// WITHTHREADSOPT-NEXT: 3 [ra] 0x{{[0-9a-f]+}} _pthread_start + {{[0-9]+}} in libsystem_pthread.dylib |
| 131 | + |
| 132 | +// WITHTHREADSOPT: Registers: |
| 133 | + |
| 134 | +// WITHTHREADSOPT: Images ({{[0-9]+}} omitted): |
| 135 | + |
| 136 | +// WITHTHREADSOPT: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}CrashWithThreads{{ +}}{{.*}}/CrashWithThreads |
| 137 | + |
0 commit comments