fortran - 在 gdb 中对 gfortran 程序的数组越界设置断点

标签 fortran gdb indexoutofboundsexception gfortran

我有一个使用 gfortran-fcheck=bounds 编译器选项编译的 Fortran 程序。这会导致代码报告“数组越界”错误并随后退出。

我想使用 gdb 调试我的程序以查找错误原因。不幸的是,在 gdb 中,代码仍然会因越界错误而退出。

有没有办法告诉gdb在发生越界错误时停止执行?

最佳答案

使用-g编译以获取调试信息。然后,首先,我在 exit 上放置了一个断点,这工作得很好,一旦程序停止,您就可以从 exit 回溯到错误点。

回溯还通过一个名为_gfortran_runtime_error_at的函数,因此您可能会更幸运地将断点放在那里,这对我有用,并且显然只会在您遇到运行时错误时触发。

关于fortran - 在 gdb 中对 gfortran 程序的数组越界设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838574/

相关文章:

floating-point - 比较浮点加法的存储结果与 Fortran 中的临时结果

c++ - 与现代 C++ 相比,现代 Fortran 有哪些优势?

fortran - gfortran 错误 : zgesvd in lapack

c - 访问合法内存地址时出现段错误

linux - Ubuntu 18中的服务崩溃问题

java - 尝试在回收器 View 中的编辑文本中键入值时出现 IndexOutOfBoundsException

c - gfortran debugging with gdb : w_powf. c: 没有那个文件或目录

eclipse - 如何设置gdb调试器连接?

java - 疑难解答 java.lang.ArrayIndexOutOfBoundsException

java - 将数字分隔为 2 个数组 Java