如何将printf的结果保存到GDB中的变量中?

如何将printf的结果保存到GDB中的变量中?
(gdb)printf "Hello %d", 7
Hello 7
(gdb)set $MyVar = printf "Hello %d", 7 // ???

如何将结果保存printf "Hello %d", 7到$MyVar?

答案1

eval 对其参数进行 printf,然后将其作为命令运行。因此,您可以获取 printf 参数列表,set $MyVar =在开头插入,然后对其进行评估。

(gdb) eval "set $MyVar = \"Hello %d\"", 7
(gdb) print $MyVar
$2 = "Hello 7"

相关内容