如果您正在检查转储,可以使用info registers
查看gdb中寄存器中的值,但是当程序执行时,您可以查看存储在寄存器中的值,例如地址0x76FD6908吗?例如,当pc处于某个地址时,我只想要寄存器的值
答案 0 :(得分:2)
您有两种选择:
frame X
,然后info registers
。这为您提供了堆栈帧中的所有寄存器。请注意,某些寄存器可能无法保存,在这种情况下,GDB会在该帧中为您提供错误的值。 info frame X
。这会告诉您仅在该帧中保存的寄存器:
Stack frame at 0x7fff5f400150:
rip = 0x100000eed in foo; saved rip 0x100000eed
called by frame at 0x7fff5f400170, caller of frame at 0x7fff5f400130
Arglist at 0x7fff5f400148, args:
Locals at 0x7fff5f400148, Previous frame's sp is 0x7fff5f400150
Saved registers:
rbp at 0x7fff5f400140, rip at 0x7fff5f400148
答案 1 :(得分:0)
如果您只想在运行gdb时查看特定的内存区域,请使用x
命令。此链接可能有所帮助:
http://www.delorie.com/gnu/docs/gdb/gdb_56.html
以这种方式检查的内存不称为“寄存器”,但这是你的意思吗?