MTDBG - отладчик пользовательского уровня

...
  • Asper
    Ты сам лично можешь выложишь здесь методику которая сама без лишних телодвижений формирует требуемый список без мусора?

    Я вот не с мог - хотя гуглил, и рыл форум фасма. А что имел ввиду diamond - я не знаю, но мне так кажется, если бы такая методика готовая и без лишних телодвижений была, то он бы расписал ее.
  • Отладчиком редко пользуюсь и обычно отлаживаю свои программы, где я и без символов знаю каждую строку коду.
    А что за мусор?
  • Ну так создай скрипт или батник (в зависимости от используемой системы):
    fasm -m 16384 animage.asm animage -s animage.fas
    symbols animage.fas animage.sbl
    В качестве animage естественно можно использовать любую другую программу.
    Вот что получаем:

    Code: Select all

    START: 0x00000000000022D8, defined in animage.asm[49]
    IM_END: 0x000000000000AADD, defined in animage.asm[198]
    I_END: 0x000000000001419C, defined in animage.asm[343]
    stacktop: 0x000000000001419C, defined in animage.asm[341]
    file_path: 0x000000000000EC9C, defined in animage.asm[316]
    cur_dir_path: 0x0000000000011D9C, defined in animage.asm[332]
    RECT.left: 0x0000000000000000, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    sizeof.RECT.left: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[89]}
    RECT.top: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    sizeof.RECT.top: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[89]}
    RECT.right: 0x0000000000000008, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    sizeof.RECT.right: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[89]}
    RECT.bottom: 0x000000000000000C, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    sizeof.RECT.bottom: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[89]}
    sizeof.RECT: 0x0000000000000010, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[470] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[97]}
    BOX.left: 0x0000000000000000, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[477] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    sizeof.BOX.left: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[477] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[89]}
    BOX.top: 0x0000000000000004, defined in {line generated by {line generated by {line generated by {line generated by {line generated by {line generated by ..\..\..\macros.inc[477] from ..\..\..\struct.inc[60]}}} from ..\..\..\struct.inc[80]}} from ..\..\..\struct.inc[88]}
    animage_dbg.7z (10.01 KiB)
    Downloaded 201 times
    .fas файл так вообще гигантский и имеет бинарные включения.
  • Я так понимаю нужно просто в каждой строке удалять информацию после запятой (включительно) и до конца строки а также двоеточие. Операция вроде несложная можно сделать простую программу, которая будет переводить такие файлы в нужный формат.
  • Зачем? Куча промежуточных файлов. Если сразу можно сделать нормальное выдергивание из FAS файла.
  • Вообще обработка символьной информации обычно не вызывает затруднений.
  • Мы уже ушли в полный оффтоп. Замечу лишь - наличие сразу готового для работы файла намного упрощает жизнь и экономит время.
  • Asper
    Ага, давайте редактировать изображения в hex-редакторе, писать опкодами программы, и забивать микроскопом гвозди :) Марио прав, хотя лучше всё-таки доработать T_Edit или TinyPad, чтобы можно было нормально работать в KoOS, а не (оужас!) в Винде и в Линуксах.
    ушёл...
  • Nasarus wrote:Asper
    хотя лучше всё-таки доработать T_Edit или TinyPad, чтобы можно было нормально работать в KoOS, а не (оужас!) в Винде и в Линуксах.
    Одно другому не мешает. Генерацию информации dbg можно сделать как под Колибри, так и под Линукс и Виндовс.
  • FASM для Колибри поддерживает генерацию .dbg файла.
    ушёл...
  • Хм, а ведь точно. :mrgreen:
    Заработался я совсем - в самой Колибри давно уже не компилировал. Тогда вопрос снимается - вся функциональность есть в FASM, который в самой Колибри. Сам отладчик тоже дорабатывать не нужно. Буду заниматься другими вещами. А инструкцию по отладчику надо дополнить подробным описанием.

    Разве что Тинипад дополнить компиляцией с параметром для отладчика и FASM на прием этого параметра, через параметры запуска оформить (как это сделано например в Jpegview, zSea и KIV).
  • А я-то думал, что это именно FASM для Колибри выводит несовместимый .dbg файл.
  • Пару вопросов.
    1. поддерживает ли отладчик брэйкпоинты?
    2. можно лизить по ядру и отлаживать его тело, например пошагово, дампить массивы ?
  • VaStaNi
    Если прочтешь документацию, то найдешь ответы.
  • Who is online

    Users browsing this forum: No registered users and 1 guest