Je dois systématiquement déboguer du code Fortran hérité qui utilise de grandes baies de données complexes, et la meilleure option disponible est TotalView. J'ai créé mon propre visualiseur pour voir les données (selon les instructions de TotalView here) qui fonctionne bien. Il est plus flexible que celui par défaut et a la capacité d'intégrer et d'afficher des données complexes, mais TotalView n'enverra pas de tableaux complexes à travers son tube de visualisation.Comment envoyer des données complexes à mon visualiseur dans TotalView?
Est-il possible de faire en sorte que TotalView puisse afficher des données complexes sans avoir à recompiler le code avec des matrices de débogage supplémentaires uniquement pour prendre la valeur absolue?
E.g. pour le code comme dans l'exemple suivant court, je pourrait faire un autre tableau en Fortran, mais je voudrais vraiment juste arrêter et examiner la variable 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
Pour les petits tableaux que je peux sortir avec quelque chose comme cela comme une expression:
my_arr%Real_Part**2 + my_arr%Imaginary_Part**2
mais cela ne fonctionne pas pour quelque chose de très grand, TotalView se plaint de la mémoire.
J'utilise TotalView 8.13.