如何在GDB中将二进制值(1010)打印成十进制值(10)?

时间:2016-06-21 19:44:37

标签: c linux unix gdb

我想在gdb中打印十进制值1010, 但它会打印结果,因为它是我最后给出的。

(gdb) 
(gdb) p/d 1010
$1 = 1010
(gdb)

1 个答案:

答案 0 :(得分:3)

GDB的p [rint]命令打印您提供的表达式的值,该值以正在调试的程序的源语言进行解释。在C中,您的1010是十进制文字,而不是二进制文字,因此您的基本问题是您正在给GDB输入错误。

标准C不支持二进制文字,但GNU C支持它们作为扩展名。格式是以0b0B开头的二进制数字字符串,您可能会认为它类似于十六进制文字的标准格式。 GDB认可这种形式。

由于print的数字的默认输出基数是十进制的,因此您无需指定输出格式。只需使用命令

p 0b1010