我正在尝试设置我的服务器处理核心转储的方式。为了测试它,我需要一个总是段错误的程序。
是否有一个总是段错误的简单示例程序?
main() { *(int *)0xdeadbeef = 37; }
应该这样做。
试试这个:
long* ptr = 0x0; //-- you can also use other random values and likely you will segfault
printf("%f", *ptr);
main;
是可移植的,并且 5chars 中的段错误。
这是一个变量声明 -int
类型是隐含的(从 B 语言复制的功能)并且0
是默认值。执行时,它会尝试执行一个数字(数字不可执行),并导致SIGSEGV
.
资料来源:https ://codegolf.stackexchange.com/questions/4399/shortest-code-that-raises-a-sigsegv
你可以试试:
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;
}