如果您可以更改程序,则添加调用abort()将在许多unix环境中生成核心转储.
您需要确保已启用核心文件.未生成核心文件的最常见原因是零大小的核心ulimit.检查命令ulimit -c并重置为零ulimit -c unlimited.
如果您不想更改程序,可以使用kill命令发送中止信号:kill -SIGABRT <pid>但是如果使用这么短的程序,您可能不得不使用脚本,即使这样您也可能无法获取信号在流程退出之前.
使用bash,您可以尝试这样的事情(假设您的程序被调用a.out并且在当前目录中):
./a.out & kill -SIGABRT $!
Run Code Online (Sandbox Code Playgroud)
&说在后台运行它并且$!是最近执行的后台命令的PID.