Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб ноя 18, 2017 1:16 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 17 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: FDO (formatted debug output)
СообщениеДобавлено: Пт ноя 10, 2006 7:08 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Вроде где-то уже писал, но найти не смог.

FDO (formatted debug output) - набор макросов для повышения удобства отладки приложений. Работает подобно функции printf(), выводя на доску отладки форматированные сообщения.

Использовать обычно нужно только DEBUGF, хотя доступны также и DEBUGS, DEBUGD, DEBUGH.

Примеры из краткой справки:
Код:
Available format specifiers are: %s, %d, %u, %x (with partial width support)

To be defined within your sources:
  __DEBUG__ equ 1
  __DEBUG_LEVEL__ equ 5

Examples:
  DEBUGF 1, "%s - %d (%x)", eax, 123, ch
  DEBUGF 1, "%d.%d.%d.%d", [ip+0]:1, [ip+1]:1, [ip+2]:1, [ip+3]:1
  DEBUGF 1, <"function ", __FNAME__, ": %s - %x - %u">, "text here", [var]:5, [esp+16]

  DEBUGF 1, "[%d][%d][%d][%d][%d]\n", al, ax, ebx, [eax], [eax]:1
  DEBUGF 2, "[%u][%u][%u][%u][%u]\n", al, ax, ebx, [eax], [eax]:1
  DEBUGF 3, "[%x][%x][%x][%x][%x]\n", al, ax, ebx, [eax], [eax]:1
  DEBUGF 4, "[%s][%s][%s][%s][%s][%s][%s]\n", "string":4, eax, eax:5, [ebx]:5, eax:ecx, eax:[ecx], eax:byte[ecx]

Widths:
  for %s - any number, register, or in-memory variable
  for %d - 1, 2, 4 (only for in-memory arguments)
  for %u - 1, 2, 4 (only for in-memory arguments)
  for %x - 1 .. 8

Скачать: (7z|zip)

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 17, 2007 6:22 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Уж и не знаю, почему ответов не последовалою В любом случае, я исправил один небольшой баг, даже не буду упоминать, в чём он заключался. Ссылки те же.

Также, я опробовал возможность использования FDO в исходниках ядра. Получается очень удобно, *намного* удобнее существующего способа вывода отладочных сообщений. Плюс, используя FDO можно моментально включать/исключать отладочную информацию.
Итак, как внедрить FDO в ядро (ревизия 357):
1. kernel.asm.diff
Код:
--- kernel.asm   2007-02-17 17:09:42.802942200 +0200
+++ kernel.asm__   2007-02-17 17:12:42.818567200 +0200
@@ -167,6 +167,10 @@
 
 include 'unpacker.inc'
 
+__DEBUG__ fix 1
+__DEBUG_LEVEL__ fix 1
+include 'debug-fdo.inc'
+
 iglobal
   boot_memdetect    db   'Determining amount of memory',0
   boot_fonts        db   'Fonts loaded',0
@@ -5012,6 +5016,10 @@
   syslang    dd 0x1
 endg
 
+if __DEBUG__ eq 1
+  include_debug_strings
+end if
+
 IncludeIGlobals
 endofcode:
 IncludeUGlobals

2. debug-fdo.inc.diff
Код:
--- fdo\debug-fdo.inc   2007-02-17 16:50:42.818567200 +0200
+++ debug-fdo.inc   2007-02-17 17:21:44.271692200 +0200
@@ -228,24 +228,22 @@
 debug_func fdo_debug_outchar
 debug_beginf
         pushad
-        mov     cl,al
-        mov     ebx,1
-        mov     eax,63
-        int     0x40
+        movzx   ebx,al
+        mov     eax,1
+        call    sys_msg_board
         popad
         ret
 debug_endf
 
 debug_func fdo_debug_outstr
 debug_beginf
-        mov     eax,63
-        mov     ebx,1
+        mov     eax,1
   .l1:  dec     esi
         js      .l2
-        mov     cl,[edx]
-        or      cl,cl
+        movzx   ebx,byte[edx]
+        or      bl,bl
         jz      .l2
-        int     0x40
+        call    sys_msg_board
         inc     edx
         jmp     .l1
   .l2:  ret

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 18, 2007 8:23 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
mike.dld
Я не понял, ты уже подключил макросы в ядро или нет?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 18, 2007 4:20 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Serge
Нет, оставил выбор за основными разработчиками :)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 18, 2007 5:05 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
mike.dld
Так добавь, ты же знаешь что надо сделать.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 18, 2007 11:22 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Сказано - сделано


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Пн апр 18, 2011 8:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
прошу прощения, но ссылки устарели... где можно взять эти файлы (или аналоги)?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 8:39 am 
SVN?


Вернуться к началу
   
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 9:59 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
а можно ссылку, пожалуйста? у меня на телефоне нет копии репозитория

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 10:50 am 
Точную ссылку не дам, но относительная ссылка например programs/system/board/trunk/debug.inc
Хотя возможно это не последняя версия. У меня сейчас нету под рукой репозитория, смотрел через redmine.kolibrios.org


Вернуться к началу
   
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 12:00 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
В исходниках ядра, fdo.inc


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 12:24 pm 
Я так понял, что Артему нужно то что работает на уровне приложений.


Вернуться к началу
   
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 1:13 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
programs/network/zeroconf/trunk/debug-fdo.inc

Были ещё какие-то фиксы в транковой версии.

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Вт апр 19, 2011 3:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
большое спасибо!

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: FDO (formatted debug output)
СообщениеДобавлено: Пт июн 14, 2013 9:40 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Так и не понял из описания - может ли макрос выводить ASCII строки с завершающим нулем, например полный путь к файлу. В примерах только специально заранее заготовленные строки, ограниченные кавычками. Сам разобрать макрос не смог, уж больно он мудреный.

З.Ы. Эту информацию нужно перенести на wiki, а у меня нет полного доступа к wiki.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Часовой пояс: UTC+03:00


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

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


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

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