GDB是一个自我移动的PIE



我正在编写一个编译为PIE的内核。启动后,内核将自己映射到64位高的mem中,特别是NULL页面移动到0x1FFFF << 0x2F,然后跳到那里,但在这样做的过程中,GDB会丢失对程序集附带代码的跟踪。我失去了设置断点的能力(这样做会触发我的断点ISR而不是GDB(,并且被迫一次通过C执行一条指令,GDB中只显示程序集。有没有什么方法可以在运行时更改GDB中可执行内核的基本地址。我正在连接到QEMU的GDB服务器进行调试。

有没有办法在运行时更改GDB中内核可执行文件的基地址

这应该有效:

(gdb) add-symbol-file kernel_exe 0x....  # where 0x... is the relocated address of .text

最新更新