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. Неизвестно только кто этим будет заниматься. Пожалуй, что и никто. ![]() |
Автор: | Сергей Губанов [ Пятница, 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) содержится байт-код, который надо интерпретировать или компилировать.
Вот-вот, ![]() |
Автор: | Сергей Оборотов [ Пятница, 14 Апрель, 2006 21:39 ] |
Заголовок сообщения: | |
Сергей Губанов писал(а): GUEST писал(а): Не совсем тоже самое. Dll работает на этапе выполнения ( может быть в .NET иначе, не могу быть уверен на все 100). А вышеупомянутый вариант целиком прерогатива вкусов компоновщика. Yes? В .Net-овской dll (в отличие от обычной win32 dll) содержится метаинформация необходимая для построения osf. Если Вы об этом... Проблемы, быть может, возникнут для generic типов. Нет не об этом. Я не делал сравнений .Net Dll с win32 dll. Речь шла о предпочтениях, оказываемых компоновщиком тому или иному формату файлов. Что в сущности с .NET-платформой связано слабо. Она обладает единственным и неповторимым загрузчиком по-моему. Цель перевода в формат ocf расширить круг используемых средств генерации кода. Однако убеждать далее не стоит. Не ровен час - самому захочется сделать. Вот конкретно порассуждать: что надо с OBJ сделать, чтобы BB его увидел - это можно. ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |