cosmopolitan/examples/crashreport.c

44 lines
1.5 KiB
C
Raw Normal View History

2020-06-15 14:18:57 +00:00
#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 <cosmo.h>
2020-06-15 14:18:57 +00:00
/**
* @fileoverview How to print backtraces and cpu state on crash.
2020-06-15 14:18:57 +00:00
*
* make -j8 -O o//examples/crashreport.com
* o//examples/crashreport.com
2020-06-15 14:18:57 +00:00
*
* To prevent the GDB GUI from popping up:
*
* export GDB=
* make -j8 -O o//examples/crashreport.com
* o//examples/crashreport.com
2020-06-15 14:18:57 +00:00
*/
int Divide(int x, int y) {
volatile int z = 0; // force creation of stack frame
return x / y + z;
}
int (*pDivide)(int, int) = Divide;
dontubsan int main(int argc, char *argv[]) {
kprintf("----------------\n");
kprintf(" THIS IS A TEST \n");
kprintf("SIMULATING CRASH\n");
kprintf("----------------\n");
ShowCrashReports();
pDivide(1, 0);
pDivide(2, 0);
pDivide(3, 0);
2020-06-15 14:18:57 +00:00
}