【发布时间】:2023-03-30 02:55:01
【问题描述】:
我在 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 社区还没有更好的免费调试器解决方案吗?
【问题讨论】:
标签: gdb fortran fortran90 gfortran derived-types