【问题标题】:How can i see what is inside of $0x27 and %ecx while using gdb debugger in linux?在 linux 中使用 gdb 调试器时,如何查看 $0x27 和 %ecx 的内容?
【发布时间】:2020-10-28 22:51:45
【问题描述】:

cmp $0x27,%ecx

我目前正在寻找 $0x27 和 %ecx 的值。我可以看到找到这个的命令是什么。

【问题讨论】:

  • 您为什么操作系统编程?你使用调试器吗?注意$0x27的值为0x27
  • 是的,我在 linux 中使用调试器
  • 什么调试器?另外,你想要的标签不是vim-registers,而是cpu-registers
  • gdb @NateEldredge 感谢编辑
  • @www.com 那么如何显示寄存器的内容请参考gdb手册。每次使用 gdb 时都应该打开本手册。

标签: debugging assembly x86 gdb cpu-registers


【解决方案1】:

在 gdb 中,您可以使用p $ecx 显示ecx 寄存器的值(注意gdb 使用$ 而不是%,因为它将$ecx 视为其内部变量之一)。也可以使用info registers查看所有寄存器的内容。

$0x27“内部”没有任何东西——它是一个立即数,而不是内存地址。就像C compare_into_flags(ecx, 0x27);

【讨论】:

  • 对于 %ecx,我得到了 $1 = 54,对于 $0x2,我得到了 $2 = void。你知道它们是什么意思吗?我的目标是让 ecx 具有与 $0x27 相同的价值?
  • p 0x27,没有$。
猜你喜欢
  • 2017-12-24
  • 2015-03-16
  • 2011-01-30
  • 2011-12-12
  • 2010-11-13
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多