zoukankan      html  css  js  c++  java
  • gdb流程控制(例: 循环打印数组)

    参考: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.
    
  • 相关阅读:
    MySQL主从复制搭建
    CSS基本样式简单介绍
    前端代码编码规范
    Markdown语法简单介绍
    Java API 操作Redis
    Java API 操作Zookeeper
    MySQL优化
    ES 可视化工具
    消息队列MQ
    Docker基础
  • 原文地址:https://www.cnblogs.com/jmliao/p/11700476.html
Copyright © 2011-2022 走看看