OberonCore
https://forum.oberoncore.ru/

Формат PDB
https://forum.oberoncore.ru/viewtopic.php?f=27&t=156
Страница 1 из 1

Автор:  Илья Ермаков [ Пятница, 07 Апрель, 2006 19:01 ]
Заголовок сообщения:  Формат PDB

Кто-нибудь знает, что за формат .PDB? Скачал полный DirectX SDK с сайта Микрософта, там лежит множество файлов PDB - и больше ничего...

Спасибо.

Автор:  FromOGU [ Среда, 12 Апрель, 2006 14:13 ]
Заголовок сообщения: 

PDB - program data base file - файлы содержат отладочную информацию(а проще символьные идентификаторы), а также сведения о состоянии проекта для многопроходной линковки. PDB файл создается когда ты компилируешь C/С++ прогу с ключами /ZI или /Zi или Visual Basic/C#/JScript .NET прогу с ключом /debug.

С ядерным отладчиком поставляюся файлы PDB и DBG. Но сейчас в DBG(NB09) файлах не содержатся символы, а содержится ссылка на соответствующий PBD-файл(NB10).

Внутренная структура PDB файлов закрыта и является полностью недокументированной(если только самому не раскопать). Но доступны функции из DLL - IMAGEHLP.DLL которые позволяют отлавливать символы из данного исполняемого файла(в нем содержится ссылка на PDB файл). Жаль что эти функции криво реализованны и возможны проблемы с декорированными именами. Но зато этот интерфейс обеспечивает портируемый способ обращения к символам любой версии(NB10 - VS6, NB11 - VS7). Вот и список функций:

SymAddSymbol
SymCleanup
SymDeleteSymbol
SymEnumerateModules64
SymEnumLines
SymEnumSymbols
SymEnumSymbolsForAddr
SymEnumTypes
SymFindFileInPath
SymFromAddr
SymFromName
SymFromToken
SymFunctionTableAccess64
SymGetHomeDirectory
SymGetLineFromAddr64
SymGetLineFromName64
SymGetLineNext64
SymGetLinePrev64
SymGetModuleBase64
SymGetModuleInfo64
SymGetOptions
SymGetSearchPath
SymGetSymNext64
SymGetSymPrev64
SymGetTypeFromName
SymGetTypeInfo
SymInitialize
SymLoadModule64
SymLoadModuleEx
SymMatchFileName
SymRegisterCallback64
SymRegisterFunctionEntryCallback64
SymSetContext
SymSetHomeDirectory
SymSetOptions
SymSetSearchPath
SymUnloadModule64

Для DirectX SDK - просто чтобы отлаживать DirectX проги и было видно какая функция и где вызывается.

Автор:  Сергей Оборотов [ Пятница, 14 Апрель, 2006 04:24 ]
Заголовок сообщения: 

Представляет интерес перевод объектных файлов в пары ocf-osf. Неизвестно только кто этим будет заниматься. Пожалуй, что и никто. :cry:

Автор:  Сергей Губанов [ Пятница, 14 Апрель, 2006 10:36 ]
Заголовок сообщения: 

GUEST писал(а):
Представляет интерес перевод объектных файлов в пары ocf-osf.
А ещё перевод .Net-овских dll-файлов туда же, в ocf/osf...

Автор:  Сергей Оборотов [ Пятница, 14 Апрель, 2006 12:13 ]
Заголовок сообщения: 

Не совсем тоже самое. Dll работает на этапе выполнения ( может быть в .NET иначе, не могу быть уверен на все 100). А вышеупомянутый вариант целиком прерогатива вкусов компоновщика. Yes?

Автор:  Сергей Губанов [ Пятница, 14 Апрель, 2006 12:22 ]
Заголовок сообщения: 

GUEST писал(а):
Не совсем тоже самое. Dll работает на этапе выполнения ( может быть в .NET иначе, не могу быть уверен на все 100). А вышеупомянутый вариант целиком прерогатива вкусов компоновщика. Yes?

В .Net-овской dll (в отличие от обычной win32 dll) содержится метаинформация необходимая для построения osf. Если Вы об этом... Проблемы, быть может, возникнут для generic типов.

Автор:  Trurl [ Пятница, 14 Апрель, 2006 12:30 ]
Заголовок сообщения: 

А еще в .Net-овской dll (в отличие от обычной win32 dll) содержится байт-код, который надо интерпретировать или компилировать.

Автор:  Trurl [ Пятница, 14 Апрель, 2006 12:31 ]
Заголовок сообщения: 

GUEST писал(а):
Представляет интерес перевод объектных файлов в пары ocf-osf.

А зачем?

Автор:  Сергей Губанов [ Пятница, 14 Апрель, 2006 13:02 ]
Заголовок сообщения: 

Trurl писал(а):
А еще в .Net-овской dll (в отличие от обычной win32 dll) содержится байт-код, который надо интерпретировать или компилировать.

Вот-вот, :D вычленить байт код и скомпилировать его в ocf, вычленить метаинформацию и поместить её в osf.

Автор:  Сергей Оборотов [ Пятница, 14 Апрель, 2006 21:39 ]
Заголовок сообщения: 

Сергей Губанов писал(а):
GUEST писал(а):
Не совсем тоже самое. Dll работает на этапе выполнения ( может быть в .NET иначе, не могу быть уверен на все 100). А вышеупомянутый вариант целиком прерогатива вкусов компоновщика. Yes?

В .Net-овской dll (в отличие от обычной win32 dll) содержится метаинформация необходимая для построения osf. Если Вы об этом... Проблемы, быть может, возникнут для generic типов.

Нет не об этом. Я не делал сравнений .Net Dll с win32 dll. Речь шла о предпочтениях, оказываемых компоновщиком тому или иному формату файлов. Что в сущности с .NET-платформой связано слабо. Она обладает единственным и неповторимым загрузчиком по-моему. Цель перевода в формат ocf расширить круг используемых средств генерации кода. Однако убеждать далее не стоит. Не ровен час - самому захочется сделать. Вот конкретно порассуждать: что надо с OBJ сделать, чтобы BB его увидел - это можно. :arrow:

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/