FDO (formatted debug output)

Assembler programming questions
  • Уж и не знаю, почему ответов не последовалою В любом случае, я исправил один небольшой баг, даже не буду упоминать, в чём он заключался. Ссылки те же.

    Также, я опробовал возможность использования FDO в исходниках ядра. Получается очень удобно, *намного* удобнее существующего способа вывода отладочных сообщений. Плюс, используя FDO можно моментально включать/исключать отладочную информацию.
    Итак, как внедрить FDO в ядро (ревизия 357):
    1. kernel.asm.diff

    Code: Select all

    --- 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

    Code: Select all

    --- 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
  • mike.dld
    Я не понял, ты уже подключил макросы в ядро или нет?
  • Serge
    Нет, оставил выбор за основными разработчиками :)
  • mike.dld
    Так добавь, ты же знаешь что надо сделать.
  • Сказано - сделано
  • прошу прощения, но ссылки устарели... где можно взять эти файлы (или аналоги)?
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • SVN?
  • а можно ссылку, пожалуйста? у меня на телефоне нет копии репозитория
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Точную ссылку не дам, но относительная ссылка например programs/system/board/trunk/debug.inc
    Хотя возможно это не последняя версия. У меня сейчас нету под рукой репозитория, смотрел через redmine.kolibrios.org
  • В исходниках ядра, fdo.inc
  • Я так понял, что Артему нужно то что работает на уровне приложений.
  • programs/network/zeroconf/trunk/debug-fdo.inc

    Были ещё какие-то фиксы в транковой версии.
    in code we trust
  • большое спасибо!
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Так и не понял из описания - может ли макрос выводить ASCII строки с завершающим нулем, например полный путь к файлу. В примерах только специально заранее заготовленные строки, ограниченные кавычками. Сам разобрать макрос не смог, уж больно он мудреный.

    З.Ы. Эту информацию нужно перенести на wiki, а у меня нет полного доступа к wiki.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 1 guest