Подскажите, если кто знает, как заюзать символьную инфу IDA, которая выдается наружу вроде бы только в виде MAP-файла, с виндбг, который признает только .dbg и .pdb? Может, есть какой конвертер из .map в .dbg?
Как реализовать сабж и есть ли готовые тулзы не знаю. Щас из DBG символьная инфа перенесена в PDB, а последний формат закрыт :-( По извлечению инфы из PDB кое-что есть у Шрайбера (сорцы его лежат на сайте) По созданию PDB.. наверняка всё, что для этого нужно присутствует в MSCV (или MASM), только где доку взять? Я проводил кое-какие опыты по созданию PDB вручную, но пока пришёл к выводу, что у меня нет ни времени ни знаний =)
DIA SDK (msdia??.dll) предоставляет только интерфейсы для чтения pdb. Для создания/модификации pdb компилятор и линкер пользуются интерфейсами mspdb??.dll. Вот только публичного SDK к ней нету, AFAIK.
Вот-вот, говоря про , я имел ввиду описание формата + работа напрямую с файлом, без сторонних dll. Кстати, даже intel C++ генерирует PDB "не совсем такие" как MSVC, так что идея даже "не публичного" SDK кажется не совсем реальной :-(
да, формат pdb должен отражать особенности конкретного компилятора. IMHO изменение формата pdb в МSС7 вызвано главным образом введением нового вида оптимизации - Link Time Code Generation. Я всё-таки думаю, что формат микрософтовского pdb не будет меняться слишком часто, тем более сам интерфейс mspdb.dll
> Речь не об особенностях, а о том, что после intel'а чего-то там не хватает (пока не разбирался). Например, CodeAnalyst егошние pdb не хочет принимать :-( Вообще, я согласен, по-хорошему надо копать mspdb.dll, но это задача не 2х дней.. для меня оказалось быстрее просто поковырть-сравнить готовые PDB, по крайней мере некоторое представление о 4х потоках (помимо тех, что у Шрайбера) получить удалось.
mspdb.dll надо будет посмотреть на досуге... А про DIA SDK в первый раз слышу, полезнейшая вешчь, спасибо, ssx.
_Juicy В DIA SDK есть пример для ковыряния PDB. А есть pdbdump как полноценный (почти) дампер PDB-файлов.