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

xml*_*lmx 7 scripting debugging gdb

(gdb)printf "Hello %d", 7
Hello 7
(gdb)set $MyVar = printf "Hello %d", 7 // ???
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ick 7

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

(gdb) eval "set $MyVar = \"Hello %d\"", 7
(gdb) print $MyVar
$2 = "Hello 7"
Run Code Online (Sandbox Code Playgroud)