OSDev

для всех
Текущее время: 27 апр 2024, 20:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 05 сен 2013, 10:28 

Зарегистрирован: 05 сен 2013, 10:01
Сообщения: 8
Всем доброго времени суток! Надеюсь кто поможет с ответом на этот вопрос.
Перезаписал нулевой сектор гостевой ОС своим кодом. Что то работает, что то - нет. Нужен отладчик.

Пробовал настроить COM-порт гостевой системы для отладки через канал:

Номер порта: COM1 Прерывание: 4 Порт В/В: 0x3F8
Режим порта: хост-канал

Путь к порту/файлу: \\.\pipe\asd

Запустил GDB (используя MinGW), но дальше вопрос - как подключиться к этому каналу?

Например,
(gdb) target remote \\.\pipe\asd - не получается

WinDbg, кстати, работает с этим каналом.

Есть еще вариант использовать встроенный отладчик VirtualBox, но как с его помощью перейти к
участку оперативной памяти, расположенной по адресу 0x7c000 (куда грузится нулевой сектор ЖД) и
пошагово начать запускать инструкции?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 11:13 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Я под Bochs делал так. Написал комплект компактных примитивных функций печати, которые могут выводить текст посимвольно в порт E9. Всё, что туда печатается, выводится в консоль Бокса, если этот хак разрешён в конфиге. Бокс элементарно устанавливается и очень прост в использовании. Отличный инструмент для отладки начальной загрузки. Под Линуксом можно использовать совместно с gdb.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 12:03 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
В боксе легко и пошагово отлаживать, но автору нужно в VirtualBox'е.

mikesmmm писал(а):
по адресу 0x7c000 (куда грузится нулевой сектор ЖД)
0x7c00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 12:21 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
чего то замудрил слишком,
на Vbox-е отладка через порты не ведётся.
лучше возьми qemu.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 14:45 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Как вариант - VMware + eclipse cdt + gdb. И среда разработки, и все прелести отладки в одном флаконе


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 14:57 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
VirtualBox хоть кто-нибудь использует? :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 15:01 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
VirtualBox хорош для реальной работы готовых к экспулатации ОС. Для отладки он не очень удобен. А так, да, я его использую для работы с Линуксом.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 15:01 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
По-моему VBox нет отладки через сетевой интерфейс, а только через ком-порт через одно место.
Вот сеанс отладки загрузчика на связке gdb + VMware. На скрине видны все стартовые команды, включая выбор интел синтаксиса, для тех кто к нему привязан
Изображение
в эклипсе не получается что-то, наверное из-за того что у меня GRUB2 и я его не отлаживаю - в проекте нет исходников и символьной информации

Одна проблема - варя чувствительна к обновлениям ядра линукса - с ужасом жду выхода 3.11 (у меня арч). Когда вышло десятое, модули варьки пришлось патчить, а я только открыл её возможности по отладке. Bochs и QEMU отказываются вставать на бряки у меня в 64-битном линухе, на 32-битном 9-м редхэте такого не было...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 15:49 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Лично я отлаживал свой первый загрузчик в VMWare без всяких отладчиков. Тогда их просо не умели прикручивать, а BOCHS. не существовало. Долгое это было занятие опыта не хватало. Зато последний отлаживал в TD стоящим в VirtualBox и длилась это гораздо быстрее. И шлифовка в dbgBOCHS.

Долго сидел на VMWare пока не перешёл на VirtualBox. Заставило слезть то что на 32-битном хозяине не работали 64-битные гости.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 18:09 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Bochs хорошая штука, я с него начинал. К тому же у него опять таки есть gdb stub на порту 1234 что позволяет отлаживать с момощью gdb, который по возможностям мощнее встроенного дебагера.
Хотя QEMU мне больше нравится возможностью врубать ускорение через KVM, и он тоже имеет интерфейс к gdb, но вот ни "борщ" ни куэму не хотят работать у меня с отладкой, хоть тресни. Уж и пересобирал с ключами и что только не мудрил. Не хотят. А я бы перешл на них, из-за зависимости варьки от системных перепетий

P.S.: Так - QEMU завел в отладке - надо было убрать ключ -enable-kvm, то есть выключить аппаратное ускорение. Вот оно как
Изображение

И работает совместно с эклипс!!!
Изображение
Я счастлив :)

По сабжу - ну вот, можно попробовать и QEMU. Он есть и под винду, правда не официальные сборки вот тут


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB