Board.KolibriOS.org
http://board.kolibrios.org/

MTDBG - отладчик пользовательского уровня
http://board.kolibrios.org/viewtopic.php?f=45&t=358
Page 4 of 9

Author:  Asper [ Wed Oct 06, 2010 10:23 pm ]
Post subject:  Re: Нужен ли отладчик?

Mario
Quote:
Отладчик может загружать файлы с информацией об именах в программе (метки,
глобальные переменные) - текстовые файлы, каждая строка которых имеет вид:
0x<hex_значение_адреса> <имя>
(строки, не имеющие такой вид, игнорируются). Такой файл может быть создан
вручную или сгенерирован автоматически при компиляции исходника FASM'ом.

Author:  Mario [ Thu Oct 07, 2010 12:07 pm ]
Post subject:  Re: Нужен ли отладчик?

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

Я вот не с мог - хотя гуглил, и рыл форум фасма. А что имел ввиду diamond - я не знаю, но мне так кажется, если бы такая методика готовая и без лишних телодвижений была, то он бы расписал ее.

Author:  Asper [ Thu Oct 07, 2010 12:51 pm ]
Post subject:  Re: Нужен ли отладчик?

Отладчиком редко пользуюсь и обычно отлаживаю свои программы, где я и без символов знаю каждую строку коду.
А что за мусор?

Author:  Mario [ Thu Oct 07, 2010 12:59 pm ]
Post subject:  Re: Нужен ли отладчик?

Ну так создай скрипт или батник (в зависимости от используемой системы):
Quote:
fasm -m 16384 animage.asm animage -s animage.fas
symbols animage.fas animage.sbl

В качестве animage естественно можно использовать любую другую программу.
Вот что получаем:
Code:
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]}

Attachment:
animage_dbg.7z [10.01 KiB]
Downloaded 73 times


.fas файл так вообще гигантский и имеет бинарные включения.

Author:  Asper [ Thu Oct 07, 2010 1:52 pm ]
Post subject:  Re: Нужен ли отладчик?

Я так понимаю нужно просто в каждой строке удалять информацию после запятой (включительно) и до конца строки а также двоеточие. Операция вроде несложная можно сделать простую программу, которая будет переводить такие файлы в нужный формат.

Author:  Mario [ Thu Oct 07, 2010 2:06 pm ]
Post subject:  Re: Нужен ли отладчик?

Зачем? Куча промежуточных файлов. Если сразу можно сделать нормальное выдергивание из FAS файла.

Author:  Asper [ Thu Oct 07, 2010 2:14 pm ]
Post subject:  Re: Нужен ли отладчик?

Вообще обработка символьной информации обычно не вызывает затруднений.

Author:  Mario [ Thu Oct 07, 2010 2:25 pm ]
Post subject:  Re: Нужен ли отладчик?

Мы уже ушли в полный оффтоп. Замечу лишь - наличие сразу готового для работы файла намного упрощает жизнь и экономит время.

Author:  Nasarus [ Thu Oct 07, 2010 3:17 pm ]
Post subject:  Re: Нужен ли отладчик?

Asper
Ага, давайте редактировать изображения в hex-редакторе, писать опкодами программы, и забивать микроскопом гвозди :) Марио прав, хотя лучше всё-таки доработать T_Edit или TinyPad, чтобы можно было нормально работать в KoOS, а не (оужас!) в Винде и в Линуксах.

Author:  Mario [ Thu Oct 07, 2010 3:26 pm ]
Post subject:  Re: Нужен ли отладчик?

Nasarus wrote:
Asper
хотя лучше всё-таки доработать T_Edit или TinyPad, чтобы можно было нормально работать в KoOS, а не (оужас!) в Винде и в Линуксах.

Одно другому не мешает. Генерацию информации dbg можно сделать как под Колибри, так и под Линукс и Виндовс.

Author:  Nasarus [ Thu Oct 07, 2010 3:35 pm ]
Post subject:  Re: Нужен ли отладчик?

FASM для Колибри поддерживает генерацию .dbg файла.

Author:  Mario [ Thu Oct 07, 2010 3:49 pm ]
Post subject:  Re: Нужен ли отладчик?

Хм, а ведь точно. :mrgreen:
Заработался я совсем - в самой Колибри давно уже не компилировал. Тогда вопрос снимается - вся функциональность есть в FASM, который в самой Колибри. Сам отладчик тоже дорабатывать не нужно. Буду заниматься другими вещами. А инструкцию по отладчику надо дополнить подробным описанием.

Разве что Тинипад дополнить компиляцией с параметром для отладчика и FASM на прием этого параметра, через параметры запуска оформить (как это сделано например в Jpegview, zSea и KIV).

Author:  Asper [ Thu Oct 07, 2010 5:21 pm ]
Post subject:  Re: Нужен ли отладчик?

А я-то думал, что это именно FASM для Колибри выводит несовместимый .dbg файл.

Author:  VaStaNi [ Fri Oct 08, 2010 2:41 pm ]
Post subject:  Re: Нужен ли отладчик?

Пару вопросов.
1. поддерживает ли отладчик брэйкпоинты?
2. можно лизить по ядру и отлаживать его тело, например пошагово, дампить массивы ?

Author:  Mario [ Fri Oct 08, 2010 3:02 pm ]
Post subject:  Re: Нужен ли отладчик?

VaStaNi
Если прочтешь документацию, то найдешь ответы.

Page 4 of 9 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/