为什么信号处理程序进入无限循环? –SIGSEGV【JAVA教程】

!
也想出现在这里? 联系我们
信息

为什么信号处理程序进入无限循环? –SIGSEGV,第1张

概述为什么信号处理程序进入无限循环? – SIGSEGV

任何想法为什么信号处理程序进入无限循环?

这是代码。 请帮帮我。

enter code here 9 voID SIGSEGV_handler(int signal) 10 { 11 printf(\”Segmentation fault caught….n\”); 12 printf(\”Value of instance variable: i = %dnn\”,i); 13 } 16 17 int main() 18 { 19 char *mallocPtr,*callocPtr,*reallocPtr,*memalignPtr,*vallocPtr; 20 struct sigaction sa; 21 22 sa.sa_handler=SIGSEGV_handler; 23 sigaction(SIGSEGV,&sa,NulL); 24 37 38 printf(\”The segmentation fault handler will be entered for i = 3,4,5 and 6n\”); 39 40 41 for(i=0; i<7; i++) 42 { 43 printf(\”i = %dn\”,i); 44 45 mallocPtr=(char*)malloc(3); 46 printf(\”Malloc address : %xn\”,mallocPtr); 47 strcpy(mallocPtr,\”Hhvhgvghsvxhvshxv\”); 48 puts(mallocPtr);

如何使用boost在C ++中独立于系统时间实现定时器callback

如何检查一个文件是否存在c

在C ++应用程序中检查Internet连接的可靠方法:gethostbyname()失败

指定的参数超出范围C#

根据variables地址存储variables(数据段或堆或BSS)的位置?

检索文件属性

shell扩展:Dragqueryfile返回至多16(在windows 7中)

如何知道在Qt中连接新的USB存储设备?

linux内核的List.h

DLL可以调用/加载另一个DLL吗?

SIGSEGV的默认 *** 作是终止你的进程。 但是你安装一个处理程序并覆盖它:

/* Does nothing to \”fix\” what was wrong with the faulting * instruction. */ voID SIGSEGV_handler(int signal) { printf(\”Segmentation fault caught….n\”); printf(\”Value of instance variable: i = %dnn\”,i); }

因此,对于触发sigsegv的每条指令,调用此处理程序并重新启动指令 。 但是你的处理程序并没有做任何事情来解决错误指令的问题。

总之,当指令重新启动时,会再次发生故障。 再一次,然后……你明白了。

http://pubs.opengroup.org/onlinepubs/009604599/functions/xsh_chap02_04.HTML#tag_02_04

SIGBUS,SIGFPE,SIGILL或SIGSEGV信号的信号捕获函数正常返回,而不是由kill(),sigqueue()或raise()生成。

总结

以上是内存溢出为你收集整理的为什么信号处理程序进入无限循环? – SIGSEGV全部内容,希望文章能够帮你解决为什么信号处理程序进入无限循环? – SIGSEGV所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞112 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容