Tło: Jestem nowy w WinDbg i próbuję uruchomić go po raz pierwszy. Chcę zbadać zrzut pamięci pobrany z działającej witryny ASP.NET 4 hostowanej w usługach IIS 7 w systemie Windows Server 2008 (x86) i pobranej na mój komputer lokalny.
Zainstalowałem narzędzia do debugowania i uruchomiłem WinDbg po raz pierwszy, otwierając zrzut awaryjny. Poszedłem do File | Ścieżka pliku symboli i ustaw ścieżkę do *srv*c:\symbols*http://msdl.microsoft.com/download/symbols*
wszystkich symboli i czekaj na ich załadowanie.
Podczas próby załadowania SOS napotkałem problemy. Najpierw wypróbowałem następujące polecenie ...
.loadby sos mscorwks
... i otrzymałem odpowiedź Unable to find module 'mscorwks'
.
Po przeszukaniu sieci próbowałem załadować mscorwks, wykonując następujące polecenie ...
sxe ld mscorwks.dll
g
... i otrzymałem odpowiedź „No runnable debuggees error in 'g'”
Skopiowałem SOS.dll (z C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) do katalogu WinDbg, a następnie spróbowałem ...
.load sos
... i otrzymałem błąd ...
The call to LoadLibrary(sos) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Nie jestem pewien, jak mam postępować. Chcę tylko załadować SOS i przeszukać ten plik zrzutu. Każda pomoc byłaby bardzo mile widziana.
Fyi ... Próbuję otworzyć plik zrzutu w 64-bitowej wersji systemu Windows 7 z 64-bitową wersją Windbg.
.loadby sos clr
, dostajęUnable to find module 'clr'
. Próbuję debugować .NET 4 z x64 WinDbgsxe ld clr
zatrzymać, gdy CLR zostanie załadowany, a następnie załadować SOS w tym momencie.Polecenie WinDbg „g” oznacza [Kontynuuj]
Ponieważ otwierasz plik zrzutu, nie ma możliwości „kontynuowania”, zawiera on tylko pamięć procesu.
Tak więc komunikat „No runnable debuggees error in 'g'” jest logiczny w twoim przypadku, ponieważ proces nie jest uruchomiony .
W celu załadowania poprawnej wersji SOS użyj następującego polecenia w zależności od wersji .NET.
.NET 4 i nowsze .loadby SOS
.NET 3.5 i 2 .loadby sos mscorwks
.NET 1.0 i 1.1 .load clr10 \ sos
źródło
Powyższe odpowiedzi wymagają poprawy, ponieważ z biegiem czasu łatwiej było radzić sobie z ładowaniem sosów.
JOHN ROBBINS ma dookoła fajny artykuł . Zobacz, że serwery symboli Microsoft są skonfigurowane w ścieżce do pliku symboli i uruchom! Analys -v po znaku zachęty windbg, to załatwi sprawę, pobierze odpowiednie pliki sos. Aby sprawdzić, uruchom .chain po monicie, zobaczysz załadowany plik dll.
źródło
Właśnie natknąłem się na podobny problem podczas ładowania SOS i otrzymywał komunikat „nie można znaleźć określonego modułu”. Pojawił się z innym rozwiązaniem, więc jeśli rozwiązania tutaj nie pomogą, wypróbuj to:
.loadby sos clr - nie można znaleźć określonego modułu
źródło