Отладка с помощью Bochs + GDB: «не удается найти границы текущей функции»? - PullRequest
0 голосов
/ 21 июня 2010

Я работаю над написанием ОС и сталкиваюсь с проблемами, пытаясь отладить мой код. Я использую GDB для подключения к заглушке Bochs GDB для «удаленной» отладки моего ядра. Подключение работает нормально, как и загрузка отладочных символов из файла ядра. Я установил точку останова для функции kmain, которая успешно расположена, и отладчик работает корректно (внутри моего ядра). Тем не менее, я не могу «шагнуть» или «дальше» через мой код, и при этом GDB явно не может определить, какая строка кода является текущей строкой.

Когда я пытаюсь «шагнуть», я получаю следующее сообщение: «Не удается найти границы текущей функции». Это единственное сообщение об ошибке, которое я получаю в любой момент.

Мой код компилируется в GCC с флагом -g (я пробовал другие типы отладочной информации, используя опции GCC; ни один не работал.) Я попытался просмотреть руководство по GDB, а также найти ответ и я в полном недоумении. Любая помощь будет потрясающей.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

Что ж, отладка сработала, но мне пришлось переключать эмуляторы. Я смог заставить GDB работать с Qemu, хотя у меня тоже были проблемы с этим. Чтобы заставить GDB подключаться к серверу Qemu gdbserver, мне пришлось передать в Qemu следующую опцию: -gdb tcp :: 1234, ipv4. У меня ушло навсегда, чтобы понять это ... Отладка теперь работает отлично!

0 голосов
/ 15 марта 2011

Я не знаю почему, но bochs с включенной gdb-заглушкой, кажется, требователен к параметрам конфигурации. На некоторых системах следующие опции могут сломать его: --enable-x86-64, --enable-vmx

0 голосов
/ 21 июня 2010

Googling подбрасывает "Это потому, что когда вы подключены к gdbserver, процесс debug не завершил код запуска C "http://www.cygwin.com/ml/gdb/2005-03/msg00237.html... http://www.bravegnu.org/gnu-eprog/c-startup.html описывает процесс кодирования встроенных устройств, может быть, это поможет?

Если вы найдете ответ, пожалуйста, напишите здесь, так как я хотел бы знать, что решение проблемы тоже.

...