可使用 examine 命令或其别名 x 显示内存内容或地址。
下列语法用于以 format 格式显示始于 address 的 count 项内存内容。缺省的 address 为先前显示的最后一个地址后的下一个地址。缺省 count 为 1。缺省 format 与在先前的 examine 命令中使用的相同;如果这是给出的第一个命令,则为 X。
examine 命令的语法如下:
examine [address] [/ [count] [format]]
要以 format 格式显示 address1 到 address2(首末地址包含在内)的内存内容:
examine address1, address2 [/ [format]]
要以指定格式显示地址(而不是地址的内容):
examine address = [format]
要输出存储在 examine 显示的最后一个地址之后的下一个地址中的值:
examine +/ i
要输出表达式的值,请提供表达式作为地址。
examine address=format examine address=
address 是求值结果为地址或可用作地址的任何表达式。address 可以替换为 +(加号),该符号以缺省格式显示下一个地址的内容。
以下示例为有效地址:
|
用于显示内存的符号地址的名称前有和号 (&)。使用函数名称时不必带有和符号;&main 等效于 main。寄存器名称前有美元符号 ($)。
该格式为 dbx 显示查询结果的地址显示格式。 生成的输出取决于当前显示格式。要更改显示格式,应提供不同的格式代码。
在每个 dbx 会话的开始处设置的缺省格式为 X,该格式将地址或值显示为十六进制 32 位字。 以下内存显示格式合法:
|
该计数是以十进制表示的重复计数。增量大小取决于内存显示格式。
以下示例说明如何使用地址和格式选项来显示从当前停止点开始的五个连续反汇编指令。
对于基于 SPARC 的系统:
(dbx) stepi stopped in main at 0x108bc 0x000108bc: main+0x000c: st %l0, [%fp - 0x14] (dbx) x 0x108bc/5i 0x000108bc: main+0x000c: st %l0, [%fp - 0x14] 0x000108c0: main+0x0010: mov 0x1,%l0 0x000108c4: main+0x0014: or %l0,%g0, %o0 0x000108c8: main+0x0018: call 0x00020b90 [unresolved PLT 8: malloc] 0x000108cc: main+0x001c: nop
对于基于 x86 的系统:
(dbx) x &main/5i 0x08048988: main : pushl %ebp 0x08048989: main+0x0001: movl %esp,%ebp 0x0804898b: main+0x0003: subl $0x28,%esp 0x0804898e: main+0x0006: movl 0x8048ac0,%eax 0x08048993: main+0x000b: movl %eax,-8(%ebp)