2010-03-16 12 views
7

Chciałbym utworzyć prosty plik .MAP zawierający listę adresów i nazw symboli z pliku PDB. Moja naturalna skłonność polegała na szukaniu narzędzia o nazwie "pdb2map", ale większość uzyskanych wyników odnosi się do przykładowego programu z płyty CD dołączonej do aplikacji do debugowania dla Microsoft .NET i Microsoft Windows, która niestety jest nie zostały również opublikowane w "sieci.Tworzenie pliku .MAP z pliku .PDB

Ktoś wie, dobre narzędzie do tego? Dzięki.

+0

Czy jest jakiś powód, dla którego nie można po prostu ponownie skompilować kod i mieć kompilator wygeneruje plik mapy? – shf301

+0

Cóż, jest kilka przypadków, w których to nie pomaga: (a) nie masz dostępu do wymaganego kodu źródłowego, ponieważ w rzeczywistości jest to biblioteka, której potrzebujesz plik MAP dla (b) masz tekstowy raport awarii (być może od użytkownika) i chcesz zobaczyć, gdzie była awaria – SamB

Odpowiedz

3
+0

Nie można go znaleźć nigdzie w formie binarnej i nie jest on gotowy do skompilowania źródła, więc oto mój naprawdę szybki i brudny pakiet. To może być pomocne dla kogoś. Został wyskrobany ze wspomnianej strony - nie jest napisany przeze mnie, tylko skompilowałem go i wprowadziłem pewne zmiany, aby można było je skompilować (VS2010 konieczne). Oto ona: [źródło + bin] (http://nedko.bg/pdb2map-bin+sources.zip) – Nedko

2

pdb2map został również omówiony w artykule o BugSlayer w magazynie MSDN. Niestety, archiwum kodu dla online version of the article zostało usunięte.

John Robbins, autor, has a blog i może być skłonny opublikować kod, jeśli o to poprosisz.

Przy okazji, książka jest warta zakupu.

+0

Hmm, nie mogłem znaleźć żadnego rodzaju informacji kontaktowych na blogu, chociaż ... – SamB

+1

Sam, spójrz na http: // www .wintellect.com/Contact.aspx Komentarze na temat kontaktu z nimi wskazują, że prawdopodobnie nie mieliby nic przeciwko kontaktowi. Zalecana jest każda książka Robbinsa, Richtera lub Pietrek. –

+0

@SamB: Myślę, że informacje kontaktowe Wintellect, o których mówił Stephen Kellett, prawdopodobnie będą działały najlepiej, ale możliwe, że jego adres e-mail, od kiedy napisał kolumny z BugSlayerem w Magazynie MSDN, może nadal działać (chociaż szczerze mówiąc, byłbym nieco zaskoczony) : [email protected] –

12

Jeśli masz zarówno application.exe i application.pdb plików, umieścić je w tym samym katalogu i uruchomić:

dumpbin /map application.exe > application.map 

DUMPBIN pochodzi z Visual Studio i prawdopodobnie z innymi narzędziami, jak również.

+0

Interesujące. To wydaje się być nieudokumentowaną funkcją. http://msdn.microsoft.com/en-us/library/756as972(v=VS.90).aspx – PaulH

+0

@PaulH Jeśli to pomaga, strona Geoffa Chappella ma [stronę na jej temat] (http: // www .geoffchappell.com/studies/msvc/link/dump/options/map.htm? tx = 12,27,35,37,46,50 & ts = 0,3852). Wydaje się, że największym problemem z braku dokumentacji jest to, że jeśli exe ma MAP optymalizacji (lub "OMAP"), mapa może być niedokładna w co najmniej niektórych (starszych) wersjach (może to nie dotyczyć nowszych wersji , Nie udało mi się znaleźć żadnej nowej nieoficjalnej dokumentacji). –