#if 0 /*─────────────────────────────────────────────────────────────────╗ │ To the extent possible under law, Justine Tunney has waived │ │ all copyright and related or neighboring rights to this file, │ │ as it is written in the following disclaimers: │ │ • http://unlicense.org/ │ │ • http://creativecommons.org/publicdomain/zero/1.0/ │ ╚─────────────────────────────────────────────────────────────────*/ #endif #include "libc/intrin/kprintf.h" #include "libc/log/backtrace.internal.h" #include "libc/log/log.h" #include "libc/runtime/runtime.h" #include "libc/runtime/symbols.internal.h" int main(int argc, char *argv[]) { ShowCrashReports(); if (IsDebuggerPresent(false)) { kprintf("debugger found!%n"); } else { kprintf("try running: gdb %s%n", argv[0]); kprintf("try running: o//tool/build/strace.com %s%n", argv[0]); } asm volatile("mov\t%4,%%r10\n\t" "mov\t%5,%%r8\n\t" "mov\t%6,%%r9\n\t" "int3" : /* no outputs */ : "a"(0), "D"(1), "S"(2), "d"(3), "g"(4), "g"(5), "g"(6) : "r8", "r9", "r10"); printf("recovered from SIGTRAP without handler\r\n"); return 0; }