2012-07-25 116 views
2

在使用GDB打印fortran代码中的二维数组值时出现问题。gdb:打印二维fortran阵列

(gdb) print var(1,2) 
no such vector element 

经过广泛的搜索后,我发现了许多关于该问题的日期〜2007 - 2010。大多数情况下,有人建议补丁。这个问题是否在当前版本中得到解决(我正在使用7.4-2012.04)?目前没有关于这个主题的帖子,它是固定的还是适合的解决方案?

一个建议是切换到c

(gdb) set language c 
(gdb) print neighbours 
$47 = 0xbfaeae44 
(gdb) print *neighbours 
$48 = 0xbfaeae44 
(gdb) print 0xbfaeae44 
$49 = 3215896132 

我怎么能打印的价值指向,做指针运算与此?

由于

+0

GDB fortran支持是一个笑话。 – EMiller 2012-10-03 17:44:19

+1

嗨,我遇到了一些类似的问题,并在这里写下它:http://numericalnoob.blogspot.be/2012/08/fortran-allocatable-arrays-and-pointers.html(也请阅读它的评论)。 – steabert 2012-10-29 13:25:16

回答

1

一个可能的解决方案是使用自Archer(GIT)得到的GDB http://sourceware.org/gdb/wiki/ArcherBranchManagement,分支射手-jankratochvil-VLA。我已经下载了EGit(Eclipse),并且已经编译并安装了(2010年3月)和Ubuntu Precise Pengolin中的(./configure,make,sudo make install)。为了做到这一点,你必须安装一些软件包,这取决于你的发行版。如果有错误可以帮助您找到丢失的软件包,您将收到一些消息。在Ubuntu中,新的gdb在命令行上默认启动。我在Eclipse(Photran)和NetBeans中使用了获得的gdb,它在GUI环境中工作得很好,几乎就像Windows中的商业IDE。

1

是的,过去有过这个问题。不知道在最新的gdb中这是否属实。

或者,您可以使用免费提供且具有更好GUI的dbx(来自Solaris Studio)。 Btw Solaris Studio包含一个调试器,分析器,C/C++/Fortran编译器,Sunperf库以及整个安装不到演出。

我总是使用GNU编译器,但是Solaris Studio在处理Fortran程序时特别方便,特别是在调试/跟踪错误/警告,符合标准等的时候。通常最好是用多个编译器检查代码。分析仪在使用OpenMP(用于检测比赛)时特别有用。