eval faz um printf de seus argumentos e então o executa como um comando. Assim, você pode pegar sua lista de argumentos printf, inserir set $MyVar =
no começo e eval it.
(gdb) eval "set $MyVar = \"Hello %d\"", 7
(gdb) print $MyVar
$2 = "Hello 7"