我的流程的当前实施,
如果进程中存在逻辑错误,则会通过故意访问无效内存区域来使内核失效并退出。 (发送SIGSEGV信号)
char* pzCoreMsg = "Logic Error";
char* zTmp = NULL;
strcpy(zTmp, pzCoreMsg);
其他可能的实施
1)调用raise(SIGABRT)
函数也是一种可能的解决方案。 (发送SIGABRT信号)
2)也可以调用abort()
函数(发送SIGABRT信号)
可能存在更多解决方案。我想了解愚蠢核心和终止进程的最佳方法
答案 0 :(得分:4)
不要依赖未定义的行为,只需致电abort()
即可。它默认会引发SIGABRT和转储核心。 abort()
也将解锁SIGABRT,如果信号被忽略(或者信号处理程序返回),它将恢复默认处置并再次提升。实际上没有必要再做任何事了。