1 #include <signal.h> 2 #include <stdint.h> 3 #include <unistd.h> 4 sigbus_handler(int signo)5void sigbus_handler(int signo) { _exit(47); } 6 target_function()7int target_function() { return 47; } 8 main()9int main() { 10 signal(SIGBUS, 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