1

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

是否有一个总是段错误的简单示例程序?

4

5 回答 5

8

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

于 2012-09-13T11:02:00.867 回答
4

试试这个:

long* ptr = 0x0; //-- you can also use other random values and likely you will segfault
printf("%f", *ptr);
于 2012-09-13T11:02:13.173 回答
4

main;

是可移植的,并且 5chars 中的段错误。
这是一个变量声明 -int类型是隐含的(从 B 语言复制的功能)并且0是默认值。执行时,它会尝试执行一个数字(数字不可执行),并导致SIGSEGV.

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

于 2014-05-25T08:52:41.330 回答
2

你可以试试:

main() {
char *p = NULL;
char c = *p;
}
于 2012-09-13T11:03:40.833 回答
0

这应该死:

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;
}
于 2012-09-13T11:04:29.350 回答