2009-10-20 13 views
6

Próbuję przeanalizować plik mini-crash i potrzebuję plików symboli, aby uzyskać więcej informacji o awarii. Im obecnie tylko zobaczyć: "! 034eff74 0086eee9 00000000 0089d58d 034eff94 app_integrator ZNK14ACE_Data_Block4baseEv + 0x6"Wyodrębnij informacje dotyczące debugowania z wbudowanej biblioteki dll msys/mingw gcc za pomocą rebase.exe?

Czy jest możliwe aby wyodrębnić informacje z debugowania MSYS/MinGW gcc zbudowany DLL w WinDBG czytelnym formacie? Jeśli nie, czy istnieje inny sposób uzyskania bardziej szczegółowych informacji, takich jak załadowanie pliku MAP w jakiś sposób?

Plik dll i wszystkie zawarte w nim pliki .o są zbudowane z flagą -g.

Odpowiedz

5

Windbg nie poradzi sobie z informacjami debugującymi, które będą generowane przez -g w instalacji mingw. Może jednak rzekomo radzić sobie z symbolami COFF.

Jeśli pliki źródłowe dla biblioteki DLL są wystarczająco małe, prawdopodobnie można uzyskać informacje o debugowaniu COFF w celu utworzenia (-gcoff zamiast -g).

Windbg może (rzekomo) obsługiwać symbole COFF, a GCC może je generować. Powinno być łatwo stamtąd, prawda? Próbowałem zrobić to dokładnie z plikiem wykonywalnym Win32 wygenerowanym przez Visual Studio 2008, który ładował skompilowaną bibliotekę DLL GCC. Niestety dla mnie kompilacja z -gcoff nie działała. Gcc Mingw nie generuje symboli COFF dla projektów zawierających więcej niż 64k linii kodu. Biblioteka DLL, której używałem, była znacznie większa niż linie kodu 64K. Niestety muszę przyznać, że zrezygnowałem i powróciłem na wierny OutputDebugString. W przeciwnym razie będę mógł podać bardziej kompletne instrukcje. Nie miałem ochoty badać opcji tworzenia symboli COFF dla większych plików źródłowych lub alternatywnej opcji pisania rozszerzenia debugowania, aby przetworzyć dane DWARF lub STABS do wewnętrznych tablic symboli windbg.

Naprawiłem problem, przy okazji!

Dalsze sugestie można znaleźć in this forum post at windbg.info.

+0

Idealnie, spróbuję. – Kristofer

+0

Chciałbym wiedzieć, czy zadziałało, lub co jeszcze udało się zrobić, jeśli nie! – Pete

+0

W powiązanej notatce profiler Very Sleepy świetnie współpracuje z symbolami debugowania utworzonymi za pomocą -gstabs –

Powiązane problemy