Gdy ngen jest wykonywany w aplikacji zarządzanej .NET w czasie instalacji, a zrzut awarii jest pobierany z Raportowania błędów systemu Windows dla aplikacji, jak można go użyć do zobacz ślad stosu, zmienne itp.?Jak debugować minizrzadkę WER "ngen" obrazu
Oto kilka informacji związanych z pytaniem: Mamy aplikację .NET, która zostanie zainstalowana. Kiedy się zawiesza z powodu nieobsługiwanego wyjątku .NET, awaria jest zgłaszana w systemie Windows Error Reporting i mogłem pobrać plik minidump.mdmp z witryny winqual.microsoft.com.
Umieszczam plik minidump.mdmp w folderze zawierającym pliki .dbg w celu kompilacji aplikacji, która uległa awarii, i kliknij dwukrotnie plik minidump.mdmp, aby otworzyć go w nowym wystąpieniu programu VS2008 SP1. Mój ślad stosu wygląda następująco:!!!
kernel32.dll RaiseException() + 0x3d bajtów
mscorwks.dll RaiseTheExceptionInternalOnly() + 0x295 bajtów
JIT_Throw() + 0x130 mscorwks.dll bajtów
MojaApl .ni.exe 000007feee74c84c!()
[ramki poniżej może być nieprawidłowe i/lub brak brak symbole załadowane do MyApp.ni.exe]
0000000070000d5e()
MyApp.ni.exe! 000007feee611000()
000000000300bf78()
000000000300bf60()
okno modułów wskazuje, że symbole są ładowane do systemu operacyjnego i .NET DLL, ale dla modułów aplikacyjnych, otrzymuję to:
MojaAplik.exe -> bez symboli rodzimych w pliku symbolu.
MyApp.ni.exe -> Nie znaleziono pasujących plików binarnych.
MyAppsLibrary.ni.dll -> Nie znaleziono pasujących binarnie.
Może głupie pytanie, czy skompilować aplikację z DEBUG zdefiniowano więc byłoby stworzenie .pdb pliki? –
To pytanie z Stack Overflow może być interesujące. http://stackoverflow.com/questions/850617/how-to-extract-debugging-information-fcr-a-crash –
A to jest sekcja Geting Started do debugowania awarii. http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx#a –