Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Jun 05, 2020 1:04 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Sun Jan 10, 2010 8:14 pm 
Offline

Joined: Thu May 07, 2009 12:03 pm
Posts: 12
Начал писать драйвер для Колибри, но столкнулся с такой проблемой как отладка кода в ядре. Потратил N-ное количество времени в поиске различных решений этой проблемы. Нашлось некоторое количество недорешений, качество которых меня не устраивает. Птму прошу помощи у вас. Буду рад вашим советам, подсказкам.


Top
   
PostPosted: Sun Jan 10, 2010 8:52 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 247
Как писал Serge, есть только вывод на доску отладки SysMsgBoardStr.


Top
   
PostPosted: Mon Jan 11, 2010 3:23 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
Разработку драйверов сложных и многофункциональных устройств имеет смысл начинать в пользовательском приложении, пользуясь для этого функциями 41-45 (работа с IRQ и портами в/в) и 62 (зона PCI + user MMIO).

В принципе, так можно довести до ума 80-90% кода (включая эмуляцию IOCTL!) в полноценном отладчике, а потом только вставить код в тело драйвера, плюс еще будет морока заменить все системные вызовы на обращение к экпортным функциям ядра.

Этот сервис еще очень новый и сыроватый, многое придется изобретать по ходу дела. Кроме того, даже наличие канала MMIO не дает приложению всего нужного драйверу инструментария. Например, DMA из приложения до сих пор запросить нельзя (хотя он туда тоже очень просится).

И все-таки отладка драйвера заметно упростится, если начинать ее в юзерспейсе.

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Top
   
PostPosted: Mon Jan 11, 2010 3:46 pm 
Offline

Joined: Tue Sep 12, 2006 9:44 pm
Posts: 37
Сам лично пользую доской отладки . Где-то давно читал , что можно для отладки использовать другой комп соединенный по COM порту. Можно попробовать настроить вирт.машину (bosh, quemu) соответствующим образом там есть такие команды.

_________________
Все сложное - просто!


Top
   
PostPosted: Tue Jan 12, 2010 12:11 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Есть доска отладки, есть встроенный отладчик в эмуляторе Bochs, можно отлаживать связкой gdb+qemu. COM-порт может помочь только в том смысле, что можно настроить ядро так, что все сообщения на доску отладки будут дублироваться выводом в COM-порт (а ещё можно дописать несколько строк в код так, чтобы под VirtualBox эти сообщения дублировались в VirtualBox'овский лог - бывает удобно).

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Tue Feb 05, 2013 5:39 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 459
У меня такой случай: процесс запускает поток. Можно ли этот поток как-то в mtdbg отладить?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited