gpt4 book ai didi

assembly - 使用 gdb 检查寄存器的值

转载 作者:行者123 更新时间:2023-12-04 16:45:35 25 4
gpt4 key购买 nike

如何查看寄存器保存的值?我有以下 assembly 线:

 mov 0x8(%rax), %rax
cpm %ebx, (%rax)

使用命令:

 (gdb) p/x $ebx
(gdb) p/x $rbx
$3 = 0xb

我得到存储在这个寄存器中的值。但是,当我尝试查看存储在内存位置 (%rax) 中的内容时,我遇到了以下问题:

(gdb) display *(int *)$rax
Disabling display 10 to avoid infinite recursion.
10: *(int *)$rax = Cannot access memory at address 0x17

我无法理解为什么会发生这种情况以及如何找出 (%rax) 中的内容。

最佳答案

要查看寄存器的值,只需使用

print $rax
info register $rax
info register

在您的情况下,rax 似乎包含数字 0x17 并且调试器无法访问此位置。请确保 rax 包含指向整数的有效地址。

如果您想快速查看,您应该使用print 而不是display。不要滥用 display 命令。如果你需要一种表达式的看门狗,你可以使用它。

在这里你可以找到一个快速引用

http://www.yolinux.com/TUTORIALS/GDB-Commands.html

希望对您有所帮助。

关于assembly - 使用 gdb 检查寄存器的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com