Привет всем. Первая удачная (?) попытка создать PDB файл для исходника компилируемого FASM. Для начала необходимо подготовиться: 1. Скачать FASM with listing отсюда 2. Отредактировать файл\fasm\SOURCE\FORMATS.INC:<font face="monospace] Код (Text): db 4,'data',19h,6 db 5,'debug',1Ah,6 ; <- добавить db 11,'discardable',19h,25 </font><!--face-->3. Откомпилировать fasm\SOURCE\LISTING\WIN32\FASM.ASM. Теперь FASM может создавать секцию 'DEBUG'. 4. Для компиляции оспользовать скрипт <font face="monospace]fasmd.js</font><!--face--> (см .аттач). Аргументы как у FASM - 1й имя исходника, 2й (опциональный) - результирующий файл. (по умолчанию - exe) 5. Теперь можно в OllyDebug сделать так: View -> Source files и открыть *.LST file. Так же полученные файлы работают (не всегда c AMD CodeAnalyst. Может ещё где поможет. Основная проблема на данный момент - отсутствие информации по новому формату Program DataBase - MSF 7.00. Старый (PDB 2) слегка описан у Шрайбера, по новому немного инфы нашел здесь Пока всё это находится в экспериментальной стадии, так что всё реальзовано скриптом, позже надеюсь интегрировать в FASM. Ещё есть проблемы и с самим FASM'ом - не всегда есть возможность сгенерировать listing, так что ещё много чего нужно будет сделать. Но надеюсь уже сейчас это будет полезно. _440747787__pdb.zip
S_T_A_S_ У меня частенько в простых на первый взгляд программах FASM теряет контроль и генерит листинги по 100-200 Мб, состоящие из нулей. Также зацикливание происходит в таком коде: Код (Text): macro m1 a,b { if ~defined b if a > 0 b = 1 else b = 0 end if end if } ; DEBUG_FUNCTIONS = 1 DEBUG = 0 m1 DEBUG,DEBUG_FUNCTIONS
Это ещё сложная программа Вот проще: Код (Text): format pe if 0 nop end if В общем-то, проблема известная. listing.inc достаточно сырой, буду копать его, всё равно мне скрипт не кажется дзенным решением Это просто макет для обкатки.
Alexey2005 На форуме фасма. Правда, встроить придётся самому. dead_body Какой формат? Я не слышал об этом, знаю лишь о возможности дампа символов, на основе которого вкупе с листингом можно генерить в принципе любую отладочную инфу.