使用gdb在Fortran中打印可分配数组:未处理的dwarf表达式操作码0x97

时间:2015-11-18 05:02:57

标签: gdb fortran fortran2003

我使用gdb作为调试器在Cygwin和Eclipse中调试了以下代码:

program codetest
    implicit none

    integer, parameter :: dp = kind(1.0d0)
    integer, parameter :: N = 10
    real(dp), dimension(:), allocatable :: vector
    integer :: i

    allocate(vector(1:N))

    forall(i = 1:10)
        vector(i) = sqrt(real(i, dp))
    end forall

    write(*, '(F7.3, 1X)', advance = 'no') (vector(i), i = 1, N)

    deallocate(vector)
end program codetest

运行gdb时,我尝试在分配后打印可分配数组“vector”,但我最终得到以下内容:

(gdb) p vector
Unhandled dwarf expression opcode 0x97

我已经搜索了Stack Overflow和Google,但我还没有找到任何可以解决问题的内容。我查看了以下内容,

但我仍然不明白问题是什么或如何解决它。当我尝试打印/显示派生类型的内容时,我从Eclipse(Mars.1 Release,4.5.1)中的gdb得到了同样的抱怨。有关我的机器/编译器/调试器的当前规范包括以下内容:

  • Windows 8.1
  • gfortran版本:GNU Fortran(GCC)4.9.3
  • gdb版本:GNU gdb(GDB)7.8

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正如评论中指出的那样,我只需要更新我的gdb版本,我通过Cygwin做了。我现在正在使用与之前相同版本的gfortran运行gdb版本7.9.1-1。