2014-02-19 6 views
1

Я пытаюсь отладить os161, и у меня возникают проблемы из-за отсутствия отладочной информации. Ни одна из моих функций не содержит информации о номере линии, поэтому я могу делать что-то вроде «b lock_acquire», но затем, когда я это делаю, он говорит «Одиночный шаг до выхода из функции lock_acquire, , который не имеет информации о номере линии». Я также получаю «Неизвестную ошибку номера строки», когда пытаюсь сделать «l lock_acquire», получить «Без символьной блокировки в текущем контексте». когда я нахожусь в lock_acquire и набираю «p lock». Кроме того, когда я печатаю ptype curthread, он говорит «переменная данных, не найденная информация об отладке», а не что-то полезное. Я использовал настройки конфигурации отсюда http://www.cdf.utoronto.ca/~csc369h/fall/docs/configure.shtml. Есть ли способ добавить дополнительную информацию об отладке при компиляции os161?Добавить информацию об отладке в os161

Edit: Для запуска GDB I типа

% cd ~/os161/root 
% sys161 -w kernel 

в одном окне, а затем введите

% cd ~/os161/root 
% cs161-gdb kernel 
(gdb) target remote unix:.sockets/gdb 

во втором окне.

ответ

0

Существует несколько способов отладки ядра одним способом - прямое добавление отладочного сообщения в ядро. Например, добавить в систему макрос DEBUG. (lib.h)

... 
DEBUG(DB_SYSCALL, "Entering into user mode\n"); 
... 

Другой способ использования GDB, как вы только что сказали. Вместо использования 's' вы должны использовать 'n' и 'bt' для проверки шагов. Не читая никаких ошибок, я не знаю, как предоставить дополнительную информацию. Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^