当发生异常时,我想异常终止我的程序。现在,当发生异常时,会write调用带有解释语句的stop语句,然后调用语句。
我正在使用idb(intel debugger)调试程序,当异常发生时,我得到了该write语句,但idb将程序视为正常终止。我希望当异常发生时程序异常终止,以便我可以backtrace在异常发生的地方查看内存。
我尝试更改stopin stop 1,以便返回非零值,但这不起作用
编辑:
我已经在其中一个答案中实施了解决方案:
interface
subroutine abort() bind(C, name="abort")
end subroutine
end interface
print *,1
call abort()
print *,2
end
Run Code Online (Sandbox Code Playgroud)
使用此解决方案时,我在使用时仍然没有得到任何回溯ifort 13.0.1,但这与ifort 14.0.2.
我求助于使用idb而不是gdb,因为后者通常无法读取fortran.