我正在广泛使用的项目使用Fortran Cray指针。经过数周的研究,我能够学习如何在gdb 7.11中为cray指针设置一个观察点,用于使用intel ifort fortran编译器编译的Fortan代码。这是我发现和一直在做的事情。
假设您要在cray指针“ro”上设置断点。首先获取有关变量的信息
(gdb) whatis ro
type = PTR TO -> ( REAL(8) (0:39930992,0:39931232))
这将告诉您该对象是一个指针。接着,
(gdb) print ro
$2 = (PTR TO -> ( REAL(8) (0:39930992,0:39931232))) 0x556d93c0
设置观察点,接下来我做
(gdb) watch *0x556d93c0
Hardware watchpoint 4: *0x556d93c0
我的问题是gdb只停留在我的源代码中的某些位置(ro
的实例),但我知道它出现在地址为0x556d93c0
的其他几个位置。如何防止这些失误并提高调试的准确性?