【发布时间】:2012-05-08 09:42:09
【问题描述】:
gdb 提供读取或写入特定线性地址的功能,例如:
(gdb) x/1wx 0x080483e4
0x80483e4 <main>: 0x83e58955
(gdb)
但是如何指定逻辑地址?我遇到了以下说明:
0x0804841a <+6>: mov %gs:0x14,%eax
如何在 gdb 中读取“%gs:0x14”处的内存,或者将此逻辑地址转换为可以在x 命令中使用的线性地址?
注意:我知道在这条指令之后我可以简单地阅读 %eax,但这不是我关心的问题
【问题讨论】:
-
how to resolve segment:offset adres in GDB 的可能副本。但这并没有一个好的答案。
-
可以说更好的答案是stackoverflow.com/a/6617004/148439,它涵盖了获取
%gs:或%fs:后面的TLS 段的基地址(取决于arch),但在GDB 中似乎不可能直接。
标签: gdb x86 memory-segmentation