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

标签 c linux unix gdb

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

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

最佳答案

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

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

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

p 0b1010

关于c - 如何在 GDB 中将二进制值(1010)打印成十进制值(10)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953276/

相关文章:

c++ - 在 Borland C++ 编译器 5.5 中询问文件 .obj 和 .tds

c - 为什么我的c程序突然用了30g的虚拟内存?

linux - 如何在启动 Linux 脚本时按名称设置多个变量输入

php - 如何使用 MySQL 存储 UNIX 时间戳

c - 用什么代替模数?

c - 在 C 中获取正则表达式匹配行

linux - cron 如何在内部安排作业?

unix - 用于从 .gz 文件中删除字符串的 Shell 脚本

C:动态内存分配-输出错误

在 linux 中创建一个守护进程