我有一个二进制foo,我将给foo一个文件输入,这可能会在Ubuntu中触发coredump。为此,我编写了一个循环,并在每次迭代中更改文件内容。但我希望在出现coredump时终止循环。下面是bash代码:
while true
do
change_file file_s > file_new
./foo file_new
# need to check coredump to terminate the loop
done
如果在python中更容易,我可以将脚本更改为python。
如果返回码大于127,则程序因信号退出。核心转储只会在这种退出的情况下发生。
./foo file_new
if (($? > 127)); then
echo foo crashed
break
fi