我可以在检查命令GDB,x / 10xw地址中使用变量代替重复计数

时间:2014-06-26 21:34:29

标签: bash debugging gdb examine

在检查命令GDB, x/10xw Address中。我可以使用变量代替repeat count,即我可以使用变量代替10,例如x/($var)xw Address吗?

这就是我的.gdbinit的样子。我需要做一些计算并使用变量(var3)

定义print_sn_list_hex

            set $var1 = $mcache->elem_size
            set $var2 = $mcache->blocking_factor
             set $var3 = ($var1) * ($var2) / 4
    x/$var3xw $sess # I want to pass a variable here 



   end

2 个答案:

答案 0 :(得分:1)

不是直接的,但您可以使用gdb“eval”命令来获得此效果,或者您可以编写Python脚本来执行您希望的几乎任何类型的格式化。

答案 1 :(得分:0)

非常感谢Tom,你在上面提到的eval命令完美无缺。我使用的是旧版本的GDB,因此它初始化了问题。它的工作现在非常好。 我的新代码如下:

定义print_sn_list_hex

        set $var1 = $mcache->elem_size
        set $var2 = $mcache->blocking_factor
         set $var3 = ($var1) * ($var2) / 4
         eval "x/%dxw %p",$var3,$sess