在调整了这个答案之后,我编写了以下循环来简单地在名为“gdb_script.gs”的脚本中在 gdb 中打印一个数组。我究竟做错了什么?
set $end=64
while ($i<$end)
print $i
print volfrac($i, :, 1)
set $i=$i+1
end
Run Code Online (Sandbox Code Playgroud)
其中 volfrac(:,:,:) 是一个 Fortran 数组。我收到错误:
gdb_script.gs:14: Error in sourced command file:
A syntax error in expression, near `<$end)'.
Run Code Online (Sandbox Code Playgroud)
另一个答案完全没有抓住重点。提示是报告的错误:
gdb_script.gs:14: Error in sourced command file:
A syntax error in expression, near `<$end)'.
Run Code Online (Sandbox Code Playgroud)
提示是<$end),这意味着 while 语句中存在语法错误。通过进一步试验,如果将来其他人需要它,我将发布我的结果:
set $ipx=0
set $end=32
while ($ipx .lt. 32)
print $ipx
print ro($ipx, 1)
set $ipx=$ipx+1
end
Run Code Online (Sandbox Code Playgroud)
关键是使用 fortran 语法进行比较($ipx .lt. 32)而不是通常的“c”语法($ipx < 32)。