gdb中三种输出 print, x, display 的区别

print

最常用的输出格式是 print (简写为p)。print 会根据表达式在程序中的类型输出值。
但是也可以指定输出类型。

print/f expression

f 可以有以下格式:

format 释义
x hexadecimal
d signed decimal
u unsigned decimal
o octal
t binary ( t stands for two)
a address
c character
f floating number
s string

x (examine)

x 用来以指定格式查看内存,和在程序中的数值类型没有关系。

x/nfu addr
x addr
x
  • n 重复的次数
  • f 输出格式
    1. 除了 print 的格式外,还有格式 ‘i’ (maching instructions)。
    2. 初始化默认是 ‘x’
    3. 每次 print 或 x 会修改默认的格式
  • u unit size
    • b Bytes
    • h Halfwords (two bytes)
    • w words (four bytes). 初始化的默认值
    • g giant words (eight bytes)

注意:如果省略 f 或 u 的话,会使用默认值。如果不清楚,最好全部指定。

display

display 相当于自动输出的 x 或 print。display 会在每次暂停的时候输出表达式的值。display 会根据指定的模式自动选择使用 x 或是 print:
如果使用 ‘i’ 或 ‘s’ 格式, 或者指定了 unit size,会使用 x 输出值,其他情况下使用 print。

display expr
display/f expr
display/t addr

你可能感兴趣的:(linux,gdb,linux)