· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Генерация PDB файлов (FASM)

Посл.отвђт Сообщенiе


Дата: Авг 22, 2004 15:01:24 · Поправил: S_T_A_S_

Привет всем.

Первая удачная (?) попытка создать PDB файл для исходника компилируемого FASM.

Для начала необходимо подготовиться:

1. Скачать FASM with listing отсюда

2. Отредактировать файл\fasm\SOURCE\FORMATS.INC:
db 4,'data',19h,6
db 5,'debug',1Ah,6   ; <- добавить
db 11,'discardable',19h,25
3. Откомпилировать fasm\SOURCE\LISTING\WIN32\FASM.ASM.
Теперь FASM может создавать секцию 'DEBUG'.

4. Для компиляции оспользовать скрипт fasmd.js (см .аттач).
Аргументы как у 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


Дата: Авг 23, 2004 00:55:46

S_T_A_S_
У меня частенько в простых на первый взгляд программах FASM теряет контроль и генерит листинги по 100-200 Мб, состоящие из нулей.

Также зацикливание происходит в таком коде:
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


Дата: Авг 23, 2004 01:43:35

Это ещё сложная программа :)
Вот проще:
format pe

if 0
nop
end if

В общем-то, проблема известная.
listing.inc достаточно сырой, буду копать его, всё равно мне скрипт не кажется дзенным решением :) Это просто макет для обкатки.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.108