-1

在检查命令GDB, x/10xw Address中。我可以用一个变量代替repeat count,即我可以用一个变量代替 10x/($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

结尾

4

2 回答 2

1

不是直接的,但是您可以使用 gdb "eval" 命令来获得这种效果,或者您可以编写一个 Python 脚本来执行您想要的几乎任何类型的格式化。

于 2014-06-26T21:42:19.983 回答
0

非常感谢汤姆,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
于 2014-06-27T20:09:54.463 回答