如何在gdb中以二进制模式打印?

com*_*ler 55 gdb

我试过b但似乎不是:

(gdb) p/b 0x0000000000400398
Size letters are meaningless in "print" command.
Run Code Online (Sandbox Code Playgroud)

有这样的转换吗?

Pau*_*l R 97

您需要/t与两个工作开关px:

(gdb) p /t 0x0000000000400398
$1 = 10000000000001110011000
Run Code Online (Sandbox Code Playgroud)

有关help xFMT(格式)开关的更多信息,请参阅.

  • @compiler:因为`b`已经用于字节宽度 (4认同)
  • 根据手册,以二进制形式打印为整数.字母"t"代表"两个".(2) (4认同)
  • 使用 lldb 时没有空间:```(lldb) p/t 0x0000000000400398 (int) $0 = 0b00000000010000000000001110011000``` (3认同)
  • @PaulR但是"print"命令中的大小字母没有意义,所以它肯定应该是*b*;) (2认同)

San*_*ngh 5

x/4tb 0x0000000000400398将允许您使用二进制值分析内存地址.