Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: pdb -> dbg -> nms  (Прочитано 11747 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« : 01-04-2004 02:13 » new

на msdl.microsoft.com сейчас выкладывают только *.pdb , а для nmsym они Unsupported module type , nmsym.exe  конвертирует в nms , загружает в SoftICE , а он естесвенно не видит ни одного символа , как эти pdb конвертировать ?
Записан

1n c0de we trust
grozny
Гость
« Ответ #1 : 13-04-2004 23:22 » 

есть спец. утилита в ДрайверСтудии начиная с 2.7, называется SymbolRetriever - она автоматом загружает нужные символы ядра с майкрософтовского символ-сервера и конвертирует в правильный nms, заодно прописывая, что эти символы надо грузить при старте софт-айса.

nmsym не понимает новых форматов PDB - с глобальной оптимизацией, например. Этот формат вообще закрытый.
Записан
Mayor
Специалист

ru
Offline Offline

« Ответ #2 : 19-04-2004 01:14 » 

Может есть умельцы способные перенести pdb v 2.0 в открытый формат который понимает nmsym ? Жаль
Записан

1n c0de we trust
grozny
Гость
« Ответ #3 : 26-04-2004 06:27 » 

умельцы отдыхают и вот почему:

- майкрософт принципиально держит pdb 2.0 закрытым. Реально это 5-6 разных подформатов. Каждая версия компилятора/линкера генерит свой вариант PDB.

- майкрософт предоставляет API для работы с PDB, так что добыть адрес о символа (прямой поиск символа), строчку и имя файла, соответствующую данному адресу (обратный поиск) и пр. базовую информацию для отладки не составляет большой проблемы. Конешно же этот API крив и нелогичен, но вполне проходим, я им пользовался. man imagehlp, dbghelp. Да, пользуясь этим API  вполне можно переложить pdb 2.0 в .dbg, например. Но зачем? Берём новую версию ДрайверСтудии - и там будет nmsym, понимающий последние вариации PDB. Ещё проще - новая версия WinDBG (6.03.11, вышла в апреле) весьма продвинулась по части интерфейса. Я перешёл на WInDBG в итоге.

Соответственно, это скорее проблема nmsym и разработчиков Compuware, т.к. есть и более приятное решение - символьный сервер. У нас при линковке PDB автоматом индексируется символьным сервером, так что вообще ничего делать не надо, раз в жизни настроить путь до сервера и всё, windbg сам вытягивает нужные символы. API символьного сервера открытый.
Записан
Mayor
Специалист

ru
Offline Offline

« Ответ #4 : 27-04-2004 01:37 » 

Цитата

умельцы отдыхают и вот почему:
- майкрософт принципиально держит pdb 2.0 закрытым

Отчасти ты прав, но на wasm я наткнулся на ссылку на pdbdump ( да и Vic ,в принципе, здесь о нем  говорил , правда сразу исчез, не объяснив ,что с ним делать ) , те ребята похоже отчасти сумели извлечь часть информации из pdb , но я не представляю как это использовать в SoftICE


Цитата

- майкрософт принципиально держит pdb 2.0 закрытым. Реально это 5-6 разных подформатов. Каждая версия компилятора/линкера генерит свой вариант PDB.

 
я не совсем понял , какие версии ты имеешь ввиду , в смысле pdb разбит как файловая система на несколько директорий в одной из которой символы , в другой перемещения для оптимизации ,в остальных черт знает что Не понял - блин я запутался Жаль


Цитата

ДрайверСтудии - и там будет nmsym, понимающий последние вариации PDB. Ещё проще - новая версия WinDBG (6.03.11, вышла в апреле) весьма продвинулась по части интерфейса. Я перешёл на WInDBG в итоге.

 
вот это уже проще ,  WinDBG я не могу использовать из-за отсутсвия второго компьютера , но мне бы хотелось узнать какая версия DS понимает dbg ?
А по поводу интерфейса - привык я к SoftICE , он так напоминает STS времен моей молодости ...  " Эх , молодость мира , склад того что наши предки однажды знали ..."
Записан

1n c0de we trust
grozny
Гость
« Ответ #5 : 27-04-2004 07:32 » 

Цитата

Отчасти ты прав, но на wasm я наткнулся на ссылку на pdbdump ( да и Vic ,в принципе, здесь о нем говорил , правда сразу исчез, не объяснив ,что с ним делать ) , те ребята похоже отчасти сумели извлечь часть информации из pdb , но я не представляю как это использовать в SoftICE

И я не представляю, как этот дамп использовать в айсе  Ага, потому "но" и "отчасти" здесь неприменимо :twisted: . Я ж говорю, если так охота самому раскрутить ПДБ и узнать где же в самом деле находятся символы в памяти, то достаточно прочитать хелп по экспортам dbghelp.dll, imagehlp.dll (вся эта беда  известна как Debug API).

PDB - Programmer's DataBase. БД, организованная как директория страниц. Размер страниц тоже меняется от версии к версии. Почитай в Шрайбере, вкратце описано.

Я работал с хххАйсом с версии... (кажется, тогда он назывался Periscope, ICE потом?) -  и расстался без всякой ностальгии. Кривой интерфейс с совершенно неоправданными ограничениями, застрявший на уровне DOSовских соплей. Надо жать кучу лишних кнопок, а мышь использовать они так и не научились до версии 3.0 бета - далее не знаю. Нипочём мне не понять, почему cut-paste в командной строке айса работают только если все "добавочные" окошки закрыты (при отладке по ком-порту). И почему команда "file source" в первую очередь покажет source.h, а не  source.cpp.

DBG поддерживается айсом до 2.7 (кажется). В 3.0 его обещали убрать - на самом деле, ДБГ получится корректным далеко не в каждом случае. Если была включена "полная оптимизация" в VC 7.x (в этом случае линкер двигает ф-ции и генерит код), то ни ДБГ, ни НМС не работают. Во всяком случае для айса версии 2.7 и 3.0RC2 у меня ничего не вышло, далее не пробовал.

А командная строка, столь же кривая, как и в айсе, есть и в виндбаге или кд, если так окошки не нравятся. Да, и виндбаг честно-бесплатный. Поскольку виндбаг позволяет отлаживать по сети, то можно и на одной машине, если поставить какую-нить вирутальную машину. Я отлаживаюсь по FireWire - это самый удобный способ.
Записан
Mayor
Специалист

ru
Offline Offline

« Ответ #6 : 28-04-2004 01:54 » 

Цитата

И я не представляю, как этот дамп использовать в айсе , потому "но" и "отчасти" здесь неприменимо

 

Да не цепляйся ты так к словам , я просто имел в виду , что есть вероятность того , что где-то существует  хакер способный конвертировать pdb -> в nms , а пример привел как косвенное подтверждение этого , а ты эээ это типа похоже воспринял квантор существования за квантор всеобщности хмм ээ ...  сейчас неуспеваешь что либо сделать до того как кто-нибудь выложит это в Inet , надо только найти это среди всего остального добра для всех случаев жизни ...



И если насчет макросов ты меня убедил , то с SoftICE я так просто из-за какой-то мыши раставаться не намерен , можно подумать они на Spectrum водились - и если SoftICE не поддерживает отладку какого компилятора можно воспользоваться другим .

До меня не дошло,  где достать хелп к Debug API . Можно ссылку на хелп и пару тройку статей Не понял

Хотя на всякий случай напиши ссылку на дистрибутив и документацию виндбага (наверно что-то вроде ms.com , но каждый раз когда я туда захожу они просят написать  , что я так упорно ищу )  Улыбаюсь
Записан

1n c0de we trust
grozny
Гость
« Ответ #7 : 28-04-2004 05:37 » 

Цитата: Mayor
Цитата

И я не представляю, как этот дамп использовать в айсе , потому "но" и "отчасти" здесь неприменимо

Цитата


Да не цепляйся ты так к словам , я просто имел в виду , что есть вероятность того , что где-то существует  хакер способный конвертировать pdb -> в nms



Да нет уж, позволь - прицеплюсь, ибо ты так и не понял основную мысль: дело не в  существовании доброго кулхацкера, способного написать конвертор пдб в нмс, а в том, что такой конвертор - как неуловимый Джо - никому нахрен не нужен. Если разобраться 8). Ну возьми последнюю версию драйвер студии, 3.2(?) и все проблемы отпадут сами собой, ага. На базаре пошукай, например  8)  

Цитата


До меня не дошло,  где достать хелп к Debug API . Можно ссылку на хелп и пару тройку статей Не понял

  Вот такой я вот внутри хелпа по Platform SDK, идущему в комплекте с визуальным С++. Если вдруг почему-то в твоём комплекте этого нету, то на МСДН, вот ссылка:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/imagehlp_functions.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/dbghelp_functions.asp


Цитата

Хотя на всякий случай напиши ссылку на дистрибутив и документацию виндбага (наверно что-то вроде ms.com , но каждый раз когда я туда захожу они просят написать  , что я так упорно ищу )  Улыбаюсь


http://www.microsoft.com/whdc/devtools/debugging/default.mspx

http://www.microsoft.com/whdc/devtools/debugging/installx86beta.mspx

Невзирая на то, что 6.3.11 - бета, работает вполне стабильно и мне нравится больше, чем 6.2.13.1.

Ну вот и на 6.2 ссылочка:

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
Записан
Mayor
Специалист

ru
Offline Offline

« Ответ #8 : 30-04-2004 01:36 » 

Спасибо за инфу , пришло время погружаться в реверсинг
Записан

1n c0de we trust
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines