我想在 中打印 1010 的十进制值gdb,但它打印的结果是我最后给出的结果。
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
Run Code Online (Sandbox Code Playgroud)
GDB 的p[ rint] 命令打印您提供的表达式的值,该值以被调试程序的源语言解释。在 C 中,您1010是十进制文字,而不是二进制文字,因此您的基本问题是您给 GDB 输入错误。
标准 C 不支持二进制文字,但 GNU C 支持它们作为扩展。格式是一个以0b或开头的二进制数字字符串0B,您可能会认为它类似于十六进制文字的标准格式。GDB 认可这种形式。
由于print数字的默认输出基数是十进制,因此您无需指定输出格式。只需使用命令
p 0b1010
Run Code Online (Sandbox Code Playgroud)