首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在gdb脚本中编写循环?

如何在gdb脚本中编写循环?
EN

Stack Overflow用户
提问于 2017-09-27 18:17:37
回答 4查看 19.9K关注 0票数 12

在适应了这个answer之后,我编写了下面的循环,只需在gdb中以一个名为"gdb_script.gs“的脚本打印一个数组。我做错了什么?

代码语言:javascript
复制
set $end=64  
while ($i<$end)
   print $i
   print volfrac($i, :, 1)
   set $i=$i+1
end

其中volfrac(:,::)是一个fortran数组。我发现了一个错误:

代码语言:javascript
复制
 gdb_script.gs:14: Error in sourced command file:
 A syntax error in expression, near `<$end)'.
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-05 14:53:04

另一个答案完全没有抓住重点。提示是报告的错误:

代码语言:javascript
复制
    gdb_script.gs:14: Error in sourced command file:
    A syntax error in expression, near `<$end)'.

提示是<$end),这意味着while语句中有语法错误。通过进一步的实验,如果其他人将来需要的话,我会发布我的结果:

代码语言:javascript
复制
 set $ipx=0
 set $end=32

 while ($ipx .lt. 32)
     print $ipx
     print ro($ipx, 1)
     set $ipx=$ipx+1
 end

关键是使用fortran语法进行比较($ipx .lt )。32)而不是通常的"c“语法($ipx < 32)。

票数 10
EN

Stack Overflow用户

发布于 2019-11-07 13:33:56

GDB新手(就像我自己一样)应该知道,除非您删除while和第一个大括号之间的空白,否则接受的答案不起作用。

而且,.lt.语法可能只适用于Fortran (https://sourceware.org/gdb/current/onlinedocs/gdb/Fortran.html)。由于该问题的标题不是专门针对Fortran开发人员的,因此所接受的答案可能会引起误解。

票数 3
EN

Stack Overflow用户

发布于 2020-01-06 09:04:22

代码语言:javascript
复制
set $i = 0
p $i++

继续按Enter,这是我找到的最简单的逻辑之一

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46454655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档