OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 25 Сентябрь, 2020 07:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Формат PDB
СообщениеДобавлено: Пятница, 07 Апрель, 2006 19:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9283
Откуда: Россия, Орёл
Кто-нибудь знает, что за формат .PDB? Скачал полный DirectX SDK с сайта Микрософта, там лежит множество файлов PDB - и больше ничего...

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 12 Апрель, 2006 14:13 

Зарегистрирован: Вторник, 11 Апрель, 2006 19:46
Сообщения: 12
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 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1027
Представляет интерес перевод объектных файлов в пары ocf-osf. Неизвестно только кто этим будет заниматься. Пожалуй, что и никто. :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 10:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
GUEST писал(а):
Представляет интерес перевод объектных файлов в пары ocf-osf.
А ещё перевод .Net-овских dll-файлов туда же, в ocf/osf...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 12:13 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 12:22 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
GUEST писал(а):
Не совсем тоже самое. Dll работает на этапе выполнения ( может быть в .NET иначе, не могу быть уверен на все 100). А вышеупомянутый вариант целиком прерогатива вкусов компоновщика. Yes?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 12:30 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1298
А еще в .Net-овской dll (в отличие от обычной win32 dll) содержится байт-код, который надо интерпретировать или компилировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 12:31 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1298
GUEST писал(а):
Представляет интерес перевод объектных файлов в пары ocf-osf.

А зачем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 13:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Trurl писал(а):
А еще в .Net-овской dll (в отличие от обычной win32 dll) содержится байт-код, который надо интерпретировать или компилировать.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 14 Апрель, 2006 21:39 

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

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB