相关疑难解决方法(0)

如何在gdb中使用逻辑地址?

gdb提供读取或写入特定线性地址的功能,例如:

(gdb) x/1wx 0x080483e4
0x80483e4 <main>:       0x83e58955
(gdb) 
Run Code Online (Sandbox Code Playgroud)

但是如何指定逻辑地址?我按照以下指示来:

   0x0804841a <+6>:     mov    %gs:0x14,%eax
Run Code Online (Sandbox Code Playgroud)

我如何读取gdb中"%gs:0x14"的内存,或者将此逻辑地址转换为我可以在x命令中使用的线性地址?

注意:我知道在这条指令之后我只能阅读%eax,但这不是我关心的问题

x86 gdb memory-segmentation

12
推荐指数
2
解决办法
4136
查看次数

如何解析GDB中的段:偏移地址

(gdb) info registers ds
   ds             0x7b  123
(gdb) disassemble
   Dump of assembler code for function printf@plt:
   0x0804831c <+0>: jmp    DWORD PTR ds:0x804a008
=> 0x08048322 <+6>: push   0x10
   0x08048327 <+11>:    jmp    0x80482ec
End of assembler dump.
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何将 ds:0x804a008 地址映射到线性地址吗?我可以使用“x/xw 地址”命令吗?如果不清楚,我想知道代码跳转中的第一个 jmp 函数在哪里。

gdb memory-management

5
推荐指数
1
解决办法
5532
查看次数

标签 统计

gdb ×2

memory-management ×1

memory-segmentation ×1

x86 ×1