在检查命令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
端
答案 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