// nodefaultlib build: cl -Zi sigsegv.cpp /link /nodefaultlib #ifdef USE_CRT #include #else int main(); extern "C" { int _fltused; void mainCRTStartup() { main(); } void printf(const char*, ...) {} } #endif void crash(bool crash_self) { printf("Before...\n"); if(crash_self) { printf("Crashing in 3, 2, 1 ...\n"); *(volatile int*)nullptr = 0; } printf("After...\n"); } int foo(int x, float y, const char* msg) { bool flag = x > y; if(flag) printf("x = %d, y = %f, msg = %s\n", x, y, msg); crash(flag); return x << 1; } int main() { foo(10, 3.14, "testing"); }