1#include <signal.h>
2#include <stdint.h>
3#include <unistd.h>
4
5void sigbus_handler(int signo) { _exit(status: 47); }
6
7int target_function() { return 47; }
8
9int main() {
10 signal(SIGBUS, handler: sigbus_handler);
11
12 // Generate a SIGBUS by deliverately calling through an unaligned function
13 // pointer.
14 union {
15 int (*t)();
16 uintptr_t p;
17 } u;
18 u.t = target_function;
19 u.p |= 1;
20 return u.t();
21}
22

source code of lldb/test/Shell/Unwind/Inputs/unaligned-pc-sigbus.c