Page 4 of 10

Re: Нужен ли отладчик?

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

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 12:07 pm
by Mario
Asper
Ты сам лично можешь выложишь здесь методику которая сама без лишних телодвижений формирует требуемый список без мусора?

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

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 12:51 pm
by Asper
Отладчиком редко пользуюсь и обычно отлаживаю свои программы, где я и без символов знаю каждую строку коду.
А что за мусор?

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 12:59 pm
by Mario
Ну так создай скрипт или батник (в зависимости от используемой системы):
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 203 times
.fas файл так вообще гигантский и имеет бинарные включения.

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 1:52 pm
by Asper
Я так понимаю нужно просто в каждой строке удалять информацию после запятой (включительно) и до конца строки а также двоеточие. Операция вроде несложная можно сделать простую программу, которая будет переводить такие файлы в нужный формат.

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 2:06 pm
by Mario
Зачем? Куча промежуточных файлов. Если сразу можно сделать нормальное выдергивание из FAS файла.

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 2:14 pm
by Asper
Вообще обработка символьной информации обычно не вызывает затруднений.

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 2:25 pm
by Mario
Мы уже ушли в полный оффтоп. Замечу лишь - наличие сразу готового для работы файла намного упрощает жизнь и экономит время.

Re: Нужен ли отладчик?

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

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 3:26 pm
by Mario
Nasarus wrote:Asper
хотя лучше всё-таки доработать T_Edit или TinyPad, чтобы можно было нормально работать в KoOS, а не (оужас!) в Винде и в Линуксах.
Одно другому не мешает. Генерацию информации dbg можно сделать как под Колибри, так и под Линукс и Виндовс.

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 3:35 pm
by Nasarus
FASM для Колибри поддерживает генерацию .dbg файла.

Re: Нужен ли отладчик?

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

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

Re: Нужен ли отладчик?

Posted: Thu Oct 07, 2010 5:21 pm
by Asper
А я-то думал, что это именно FASM для Колибри выводит несовместимый .dbg файл.

Re: Нужен ли отладчик?

Posted: Fri Oct 08, 2010 2:41 pm
by VaStaNi
Пару вопросов.
1. поддерживает ли отладчик брэйкпоинты?
2. можно лизить по ядру и отлаживать его тело, например пошагово, дампить массивы ?

Re: Нужен ли отладчик?

Posted: Fri Oct 08, 2010 3:02 pm
by Mario
VaStaNi
Если прочтешь документацию, то найдешь ответы.