加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

gdb流程控制(例: 循环打印数组)

发布时间:2020-12-14 00:27:59 所属栏目:Linux 来源:网络整理
导读:参考:https://blog.csdn.net/justlinux2010/article/details/9453151 循环/条件 在gdb的脚本中循环遍历整个哈希表,并且加上判断条件来进行统计,然后输出结果。导入gdb脚本的方式很简单,gdb中输入“source 脚本名”。 脚本如下: set $i=32707set $j=0whi

参考:https://blog.csdn.net/justlinux2010/article/details/9453151

循环/条件

在gdb的脚本中循环遍历整个哈希表,并且加上判断条件来进行统计,然后输出结果。导入gdb脚本的方式很简单,gdb中输入“source 脚本名”。

脚本如下:

set $i=32707
set $j=0
while ($i)
  if (fcluster->hash_table[$i].addr == 0x380aa8c0)
     set $j++
  end
  set $i--
end
p $j

前两行的set是定义两个变量,注意一定要加上‘$‘符号,否则会认为是被调试的程序中的变量。fcluster->hash_table是我的哈希表。gdb脚本中while、if语句块要以end结尾。脚本中的判断语句和C语言中的语法一样。最后输出统计结果。

上面的脚本也可以直接在gdb命令窗口输入。

printf

print只能打印一个变量或表达式,如果需要指定格式打印,可以使用printf,使用方法和C语言相同。

(gdb) help printf
printf "printf format string",arg1,arg2,arg3,...,argn
This is useful for formatted output in user-defined commands.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读