【发布时间】:2015-11-19 03:15:25
【问题描述】:
我在 Cygwin 和 Eclipse 中使用 gdb 作为调试器调试了以下代码:
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,但没有找到任何能触及问题核心的内容。我已经检查了以下内容,
- http://numericalnoob.blogspot.be/2012/08/fortran-allocatable-arrays-and-pointers.html
- Unhandled dwarf expression
- Fortran print allocatable array in gdb
但我仍然不明白问题是什么或如何解决它。在尝试打印/显示派生类型的内容时,我从 Eclipse(Mars.1 Release,4.5.1)中的 gdb 得到了同样的抱怨。我的机器/编译器/调试器的当前规格包括以下内容:
- Windows 8.1
- gfortran 版本:GNU Fortran (GCC) 4.9.3
- gdb 版本:GNU gdb (GDB) 7.8
感谢任何帮助。
【问题讨论】:
-
这只是复制品!您链接的答案清楚地表明您需要 gdb 的另一个分支,其中包含来自 Archer 分支的 pach 。您的 gdb 版本只是没有此功能。您还想了解什么?
-
谢谢弗拉基米尔。我更新了我的 gdb 版本,现在一切正常。
标签: gdb fortran fortran2003