使用gdb在Fortran中打印可分配数组:未处理的dwarf表达式操作码0x97
我已经使用gdb作为调试器在Cygwin和Eclipse中调试了以下代码:使用gdb在Fortran中打印可分配数组:未处理的dwarf表达式操作码0x97,gdb,fortran,fortran2003,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)) f
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,但还没有找到任何能够触及问题核心的东西。我已经检查了以下内容
(gdb) p vector
Unhandled dwarf expression opcode 0x97
- Windows 8.1
- gfortran版本:GNU Fortran(GCC)4.9.3
- gdb版本:GNUGDB(gdb)7.8
感谢您的帮助。正如评论中所指出的,我只需要更新我的gdb版本,这是我通过Cygwin完成的。我现在使用与以前相同的gfortran版本运行gdb 7.9.1-1版。正如评论中指出的,我只需要更新我的gdb版本,这是我通过Cygwin完成的。我现在使用与以前相同的gfortran版本运行gdb 7.9.1-1版。这只是一个副本!您链接的答案清楚地表明您需要gdb的另一个分支,它包含来自Archer分支的pach。你的gdb版本就是没有这个功能。你想知道更多什么?谢谢弗拉基米尔。我更新了我的gdb版本,现在一切都很好。这只是一个复制品!您链接的答案清楚地表明您需要gdb的另一个分支,它包含来自Archer分支的pach。你的gdb版本就是没有这个功能。你想知道更多什么?谢谢弗拉基米尔。我更新了我的gdb版本,现在一切都好了。