// trace_hook.c — intercept signal handler to log VM state #define _GNU_SOURCE #include #include #include static FILE *trace; int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact) { // Log which signals are being registered if (!trace) trace = fopen("/tmp/vm_trace.txt", "w"); fprintf(trace, "sigaction(%d)\n", signum); fflush(trace); // Call real sigaction int (*real)(int, const struct sigaction*, struct sigaction*) = dlsym(RTLD_NEXT, "sigaction"); return real(signum, act, oldact); }