【发布时间】:2017-05-26 16:26:20
【问题描述】:
我经常需要调试使用大型复杂数据数组的旧版 Fortran 代码,可用的最佳选项是 TotalView。我创建了自己的可视化工具来查看运行良好的数据(按照 TotalView 的说明 here)。它比默认的更灵活,能够摄取和显示复杂的数据,但 TotalView 不会通过其可视化管道发送复杂的数组。
有没有什么办法可以让 TotalView 能够显示复杂的数据,而不必为了取绝对值而用额外的调试数组重新编译代码?
例如对于类似以下简短示例的代码,我可以在 Fortran 中创建另一个数组,但我真的很想停下来检查变量 my_arr:
program main
implicit none
integer N, M, i, j
parameter (N=100, M=30)
complex my_arr(N, M)
real pi
pi = ACOS(-1.0)
do j = 1, M
do i = 1, N
my_arr(i,j) = cmplx(i*cos(j/pi), i*sin(j/pi))
end do
end do
return
end
对于小型数组,我可以使用这样的表达式:
my_arr%Real_Part**2 + my_arr%Imaginary_Part**2
但这不适用于任何非常大的东西,TotalView 抱怨内存。
我正在使用 TotalView 8.13。
【问题讨论】: