我在shell脚本中使用的其中一个二进制文件导致了分段错误(返回值:139)
即使我将stdout和stderr重定向到日志文件,当我运行shell脚本时,终端会显示Segmentation Fault错误消息。
是否可以将此消息从Segfault重定向到日志文件?
答案 0 :(得分:2)
您看到的Segmentation Fault消息由运行程序的shell打印。这种行为因shell而异,所以您可以尝试一些事情(如果您坚持从shell重定向中将分段错误消息放入日志中)。
# Have sh invoke your program, and redirect output from both sh and your program into logfile
sh -c "program arguments more arguments" >logfile 2>&1
# Force bash to not just exec your program (/bin/true part), and redirect output
# from both bash and your program into logfile
bash -c "/bin/true; program arguments more arguments" >logfile 2>&1
答案 1 :(得分:2)
好吧,我正在回答我自己的问题.. :) 我在这里找到了答案 How can I suppress the output due to a SIGSEGV or a SIGFPE in a Fortran 90 program?
诀窍是添加
`exec 2> filename`
在shell脚本中。
这会将所有邮件从shell重定向到日志文件
答案 2 :(得分:0)