GDB P IE, который переехал сам - PullRequest
0 голосов
/ 02 апреля 2020

Я пишу ядро, которое скомпилировано как P IE. После загрузки ядро ​​преобразуется в 64-битный файл памяти, в частности, страница NULL перемещается в 0x1FFFF << 0x2F, а затем переходит туда, однако при этом GDB теряет код, сопровождающий сборку. Я теряю возможность устанавливать точки останова (при этом запускается моя точка прерывания ISR вместо GDB), и я вынужден выполнять одну инструкцию за раз через мой C, и в GDB отображается только сборка. Есть ли способ, которым я могу изменить базовый адрес моего исполняемого файла ядра в GDB во время выполнения. Я подключаюсь к серверу QEMU GDB для отладки.

1 Ответ

1 голос
/ 02 апреля 2020

Есть ли способ, которым я могу изменить базовый адрес моего исполняемого файла ядра в GDB во время выполнения

Это должно работать:

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