分段故障的最小C/C++程序

Minimal C/C++ program that segfaults?

本文关键字:C++ 程序 故障 分段      更新时间:2023-10-16

我正在尝试设置服务器处理核心转储的方式。为了测试它,我需要一个总是分段故障的程序。

有没有一个简单的示例程序总是分段故障?

main() { *(int *)0xdeadbeef = 37; }应该这样做。

main;

是可移植的,并且在5chars中segfault
这是一个变量声明——int类型是隐含的(从B语言复制的特性),0是默认值。当执行时,它尝试执行一个数字(数字不可执行),并导致SIGSEGV

来源:https://codegolf.stackexchange.com/questions/4399/shortest-code-that-raises-a-sigsegv

试试这个:

long* ptr = 0x0; //-- you can also use other random values and likely you will segfault
printf("%f", *ptr);

您可以尝试:

main() {
char *p = NULL;
char c = *p;
}

这应该会死:

int main() {
    char *die;
    printf("%d",(int *)die * 200);
    return 0;
}

编辑:

int main() {
    char *die;
    int killer = 200;
    while(1) {
       printf("%d",(int *)die * killer);
       killer = killer * killer;
    }
    return 0;
}