gpt4 book ai didi

gdb - 如何使用 gdb 为 Fortran 程序打印数组大小(绑定(bind))

转载 作者:行者123 更新时间:2023-12-05 01:15:21 29 4
gpt4 key购买 nike

我是 Linux 下 gdb 的初学者。当我尝试调试使用 ifort 和 -c、-g 选项编译的程序时,我想检查几个数组的界限。不幸的是,我无法在 Google 中找到任何有关如何打印与 gdb 调试器绑定(bind)的数组的信息。

[更新]

我有一个带有可分配公共(public)数组的模块,它在该模块的子例程中正确分配。在主程序中(调用子例程后)我尝试使用 whatis 并查看 (*,*) 而不是形状。

最佳答案

您可以使用 whatis查看数组边界的命令:例如,

program arr
real, dimension(2:41) :: arr1
real, allocatable, dimension(:), target :: arr2
integer :: i

allocate(arr2(40))

forall(i = 2:41) arr1(i) = i
arr2 = arr1 + 2

print *, arr1(2)

deallocate(arr2)
end program are

运行给予

$ gfortran -g foo.f90
$ gdb a.out
[...]
(gdb) break 11
Breakpoint 1 at 0x400b01: file foo.f90, line 11.
(gdb) run
[...]

Breakpoint 1, arr () at foo.f90:11
11 print *, arr1(2)
(gdb) whatis arr1
type = real(kind=4) (2:41)
(gdb) whatis arr2
type = real(kind=4) (40)

关于gdb - 如何使用 gdb 为 Fortran 程序打印数组大小(绑定(bind)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235720/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com