GDB命令行界面错误:无法识别格式字符串中的转义字符\x

GDB命令行界面错误:无法识别格式字符串中的转义字符\x,gdb,Gdb,我有一个小程序,可以要求用户输入一些信息(本质上就是gets函数)。现在,我想稍微处理一下输入。我用gdb运行程序,我想在gdb提示符中插入十六进制格式的字节 我在gdb命令行界面上尝试这样做的方式如下: (gdb) printf "\x20\x20" | ./program 但这会导致错误: Unrecognized escape character \x in format string. 如果我在没有gdb提示的情况下在shell中执行相同的操作,那么它将正常工作。我做错了什么 谢谢:

我有一个小程序,可以要求用户输入一些信息(本质上就是gets函数)。现在,我想稍微处理一下输入。我用gdb运行程序,我想在gdb提示符中插入十六进制格式的字节

我在gdb命令行界面上尝试这样做的方式如下:

(gdb) printf "\x20\x20" | ./program
但这会导致错误:

Unrecognized escape character \x in format string.
如果我在没有gdb提示的情况下在shell中执行相同的操作,那么它将正常工作。我做错了什么


谢谢:)

你没有做错任何事——这只是gdb缺少的一项功能。你可以提交一份bug报告

解决办法是:

(gdb) printf "%c", 0x20

感谢您对解决方法的提示。很高兴这次我没有做错什么。