Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 如何防止gdb在打印时出现SEGFULT,或者从中可以学到什么?_Fortran_Gdb - Fatal编程技术网

Fortran 如何防止gdb在打印时出现SEGFULT,或者从中可以学到什么?

Fortran 如何防止gdb在打印时出现SEGFULT,或者从中可以学到什么?,fortran,gdb,Fortran,Gdb,我一次又一次地犯这个奇怪的错误 变量iw的声明如下: integer iw (line 28) 我必须提到的另一件事是,我有一个print语句,仅在上面几行就可以正确执行: write(*,*) ' IW=', iw (line 89) 但几行之后,我得到: (gdb) p iw Segmentation fault (core dumped) 因此,标题中所述的问题由两部分组成:(a)我如何防止gdb在这里打印时出现SEGFULT,以及(

我一次又一次地犯这个奇怪的错误

变量
iw
的声明如下:

       integer iw         (line 28)
我必须提到的另一件事是,我有一个print语句,仅在上面几行就可以正确执行:

      write(*,*) ' IW=', iw     (line 89)
但几行之后,我得到:

(gdb) p iw
Segmentation fault (core dumped)

因此,标题中所述的问题由两部分组成:(a)我如何防止gdb在这里打印时出现SEGFULT,以及(b)我可以从SEGFULT中学到什么

当gdb崩溃时,它总是gdb中的一个bug。我担心当这种情况发生时,你几乎没有选择。不过,您并没有说您使用的是哪个版本的gdb,所以升级可能会有所帮助

否则,最好的办法是尝试提出一个最小的示例并提交一个bug。一个优秀的bug报告还包括来自gdb的堆栈跟踪。您可以尝试以下方法:

$ gdb --args gdb your-program
然后在外部gdb中运行内部gdb;然后调试你的程序;当内部gdb崩溃时,使用
bt
获取可以在gdb bug报告中归档的堆栈跟踪


只有当您有gdb的调试符号时,这才真正有效。如果您想尝试修复gdb,最好是构建自己的gdb。

我通过使用标准gdb而不是Archer分支来避免这个问题。我了解到,问题的根源在于使用数组的源代码中的一些令人不快的行。评论这些台词消除了我的问题。