我正在为FreeBSD上的服务器编写错误处理代码.对于非常严重的错误,我希望通过立即终止来避免数据损坏.这很容易,exit(3).在我退出之前,我输出了导致我的相关变量.然而,理想情况下,这种终止将伴随着.core我可以完全调查是什么让我对这种灾难性的(并且可能难以复制)状态.
我怎么能强迫这种情况发生?
msw*_*msw 36
kill -QUIT process_id 将导致正在运行的进程的核心转储(假设资源限制允许).
或者看看man 3 abort是否导致程序自行转储.
补充:从交互式shell中,可以使用退出键(通常为Ctrl+)中止正在运行的程序\,这会发送SIGQUIT,就像更常见的Ctrl+ C发送SIGINT一样.kill -QUIT…如果您在控制终端上,这与更容易输入相同.查看man 1 stty您的默认退出键是否不同.