我在 Fortran90 程序中有以下数据结构:
TYPE derivedType
CHARACTER(100) :: name = ' '
INTEGER :: type = 0
REAL(KIND(1.0D0)) :: property = 0.0
END TYPE derivedType
TYPE (derivedType), ALLOCATABLE, DIMENSION(:) :: arrayOfDerivedTypes
当我尝试在 GDB 中调试和打印值时,例如:
(gdb) p arrayOfDerivedTypes(1)%name
我得到无意义的值(通常是零字符串、正斜杠和字母)或完全错误的值(如 arrayOfDerivedTypes(1)%name = 9,当我知道它是 = 2 时)。如何让 GDB 打印正确的值?
背景
我知道:
- 这个错误: http: //sourceware.org/bugzilla/show_bug.cgi ?id=9395
- GDB 的这个分支:http: //sourceware.org/gdb/wiki/ProjectArcher
- 和这篇关于打印可分配数组的博文:http: //numericalnoob.blogspot.be/2012/08/fortran-allocatable-arrays-and-pointers.html
我不想麻烦编译一个单独的 GDB 分支来测试它是否能解决这个问题,如果有人已经知道它不会或者是否有更好的解决方案可用。
我很难想象目前还没有解决方案。fortran 社区是否还没有更好的免费调试器解决方案?