Отладка C: GDB возвращает «адрес, где <file>был загружен, отсутствует» - PullRequest
0 голосов
/ 11 марта 2020

Я очень плохо знаком с языком C, и мне было поручено изменить GRUB. Какой способ учиться, верно? Во всяком случае, я пытаюсь отладить мой модифицированный GRUB, используя VMWare и GDB. Я был в состоянии заставить работать отладчик раньше, но по какой-то причине, каждый раз, когда я загружаю свою виртуальную машину и подключаю GDB, в процессе загрузки GRUB я получаю:

.loadsym.gdb:1: Error in sourced command file:
The address where biosdisk.module has been loaded is missing

, и у меня есть понятия не имею, что с этим делать. Моей первой мыслью было: «О, я просто add-symbol-file <file> и это все исправлю!» но, видимо, это говорит GDB забыть все другие символы, которые он загружал ???? Так что я не могу добавить файл символов и установить точку останова.

Мой поиск в Google возвращает только один полуотносительный пост , который на самом деле не go все это углубленно устранение проблемы.

Этот вывод также может иметь значение.

info file biosdisk.module
Symbols from "H:\Workspace\GRUB\Bootloader\Trunk\grub-core\kernel.exec".
Remote serial target in gdb-specific protocol:
Debugging a target over a serial line.
        While running this, GDB does not access memory from...
Local exec file:
        `H:\Workspace\GRUB\Bootloader\Trunk\grub-core\kernel.exec', file type elf32-i386.
        Entry point: 0x9000
        0x00009000 - 0x0000e6e0 is .text
        0x0000e6e0 - 0x0000f68d is .rodata
        0x0000f6a0 - 0x0000fe74 is .data
        0x0000fe80 - 0x000175d4 is .bss

1 Ответ

0 голосов
/ 12 марта 2020

В итоге моя кодовая база была не такой. То есть на моем Windows хосте у меня была одна копия моего кода, а на моей Ubuntu VM - другая.

Использование контроля версий решило эту проблему.

...