gdb:打印二维fortran数组

时间:2012-07-25 18:15:03

标签: arrays 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

如何打印指向的值并用此指针算术?

由于

2 个答案:

答案 0 :(得分:1)

一种可能的解决方案是使用从Archer(git)http://sourceware.org/gdb/wiki/ArcherBranchManagement获得的gdb,分支archer-jankratochvil-vla。我已经下载了EGit(Eclipse),我已经编译并安装了(./configuremakesudo make install)Mandriva 2010/2011和Ubuntu Precise Pengolin。为了做到这一点,你必须安装一些软件包,这取决于你的发行版。如果出现错误,您会收到一些消息,以帮助您找到丢失的包。在Ubuntu中,默认情况下,在命令行上启动新的gdb。我在Eclipse(Photran)和NetBeans中使用了获得的gdb,它在GUI环境中运行良好,几乎与Windows中的商业IDE一样。

答案 1 :(得分:1)

是的,过去有过这方面的问题。不确定在最新的gdb中是否属实。

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

我总是使用GNU编译器,但是在使用Fortran程序时,特别是在调试/跟踪错误/警告,符合标准等时,Solaris Studio非常方便。无论如何,通常使用多个编译器检查代码会更好。使用OpenMP(用于检测比赛)时,Analyzer特别有用。