Udostępnij za pośrednictwem


Debugowanie awarii i zawieszeń aplikacji w Visual Studio przy użyciu plików zrzutu

Pliki zrzutu ze stertami lub bez nich; tworzenie pliku zrzutu; otwieranie pliku zrzutu; znajdowanie plików binarnych, PDB i pliku źródłowego pliku zrzutu.

Zawartość

Co to jest plik zrzutu?

Pliki zrzutu ze stertami lub bez nich

Wymagania i ograniczenia

Tworzenie pliku zrzutu

Otwieranie pliku zrzutu

Znajdowanie plików binarnych, plików symboli (.pdb) i plików źródłowych

Co to jest plik zrzutu?

Element pliku zrzutu jest migawką aplikacji w punkcie w czasie zrzut zostanie wykonana.To pokazuje, jaki proces był wykonywany i które moduły zostały załadowane.Jeśli zrzut został zapisany z informacjami o stercie, plik zrzutu zawiera migawkę tego, co było w pamięci aplikacji w tamtym momencie.Otwieranie pliku zrzutu ze stertą w Visual Studio przypomina zatrzymywanie w punkcie przerwania sesji debugowania.Chociaż nie możesz kontynuować wykonywania, możesz przeanalizować stosy, wątki i wartości zmiennych aplikacji dla momentu zrzutu.

Zrzuty są wykorzystywane głównie do debugowania problemów występujących na komputerach, do których deweloper nie ma dostępu.Na przykład można użyć pliku zrzutu z komputera klienta, gdy nie można odtworzyć awarii lub zawieszenia u klienta na własnym komputerze.Zrzuty są również tworzone przez testerów w celu zapisania danych o awarii lub zawieszeniu, tak aby maszyna testowa mogła służyć do dalszego testowania.Debuger programu Visual Studio może zapisywać pliki zrzutu dla kodu zarządzanego lub natywnego.Debuger można załadować plików zrzutu, które zostały utworzone przez program Visual Studio lub przez inne programy, które zapisywanie plików w minizrzutu format.

Powrót do początku Zawartość

Pliki zrzutu ze stertami lub bez nich

Można tworzyć pliki zrzutu z informacjami o stercie lub bez nich.

  • Pliki zrzutu ze stertami zawierają migawkę pamięci aplikacji.Obejmuje to wartości zmiennych utworzonych w momencie zrzutu.Jeśli załadujesz plik zrzutu, który został zapisany ze stertą, program Visual Studio można załadować symbole, nawet jeśli nie można odnaleźć pliku binarnego aplikacji.Program Visual Studio zapisuje także pliki binarne załadowanych modułów macierzystych w pliku zrzutu, co znacznie ułatwia debugowanie.

  • Pliki zrzutu bez stert są znacznie mniejsze niż pliki zrzutu z informacjami o stertach.Jednak debuger musi załadować pliki binarne aplikacji, aby znaleźć informacje o symbolach.Pliki binarne muszą dokładnie odpowiadać plikom binarnym, które były używane podczas tworzenia zrzutu.Tylko wartości zmiennych stosu są zapisywane w plikach zrzutu bez danych sterty.

Powrót do początku Zawartość

Wymagania i ograniczenia

  • Debugowanie plików zrzutu zoptymalizowanego kodu może być mylące.Na przykład wbudowywanie funkcji przez kompilator może spowodować nieoczekiwane stosy wywołań, a inne optymalizacje mogą zmienić okres istnienia zmiennych.

  • Pliki zrzutu z komputerów 64-bitowych muszą być debugowane na wystąpieniu programu Visual Studio, który jest uruchomiony na komputerze 64-bitowym.

  • W wersjach Visual Studio starszych niż VS 2013, zrzutów aplikacji 32-bitowych uruchamianych na komputerach 64-bitowych, które zostały zebrane przez kilka narzędzi (takich jak Menedżer zadań i WinDbg 64-bitowe), nie można otworzyć w programie Visual Studio.Ograniczenie to zostało usunięte w VS 2013.

  • Program Visual Studio umożliwia debugowanie plików zrzutu macierzystych aplikacji z urządzeń ARM.Program Visual Studio umożliwia również debugowanie plików zrzutu zarządzanych aplikacji z urządzeń ARM, ale tylko w macierzystym debugerze.

  • Do debugowania trybu jądra zrzut plików w programie Visual Studio 2013, Pobierz Windows 8.1 wersji z narzędzi debugowania dla systemu Windows.Zobacz jądra debugowania w programie Visual Studio.

  • Program Visual Studio nie może debugowanie zapisane w formacie zrzutu starsze znane jako plików zrzutu trybu użytkownika pełnego zrzutu.Należy zauważyć, że pełny zrzut trybu użytkownika to nie to samo, co zrzut ze stertą.

  • Do debugowania z SOS.dll (rozszerzenie do debugowania SOS) w programie Visual Studio, należy zainstalować narzędzi debugowania dla systemu Windows wchodzących w skład systemu Windows Driver Kit (WDK).Zobacz Windows 8.1 Preview: Pobierz zestawy, bitów i narzędzia.

Powrót do początku Zawartość

Tworzenie pliku zrzutu

Aby utworzyć plik zrzutu z programu Visual Studio:

Można również tworzyć pliki zrzutu za pomocą dowolnego programu, który obsługuje format minizrzutu systemu Windows.Na przykład Procdump narzędzia wiersza polecenia z Windows Sysinternals można utworzyć pliki zrzutu awaryjnego procesu na podstawie wyzwalaczy lub na żądanie.Zobacz wymagania i ograniczenia w tym temacie, aby uzyskać dodatkowe informacje dotyczące korzystania z innego narzędzia do tworzenia plików zrzutu.

Powrót do początku Zawartość

Otwieranie pliku zrzutu

  1. W programie Visual Studio, wybierz pliku, Otwórz, pliku.

  2. W Otwórz plik okna dialogowego zlokalizuj i wybierz plik zrzutu.Będzie zazwyczaj miał rozszerzenie .dmp.Następnie wybierz OK.

  3. Zrzut Podsumowanie pliku zostanie wyświetlone okno.W tym oknie można wyświetlać informacje podsumowujące debugowanie dla pliku zrzutu, ustawić ścieżkę symboli, rozpocząć debugowanie i skopiować informacje podsumowujące do Schowka.

    Strona podsumowania minizrzutu

  4. Aby rozpocząć debugowanie, przejdź do Akcje sekcji, a następnie wybierz opcję debugowaniu z macierzystego tylko lub debugowania mieszane.

Znajdowanie plików binarnych, plików symboli (.pdb) i plików źródłowych

Aby użyć wszystkich funkcji programu Visual Studio do debugowania pliku zrzutu, potrzebny jest dostęp do następujących elementów:

  • Plik .exe, dla którego zrobiono zrzut, i inne pliki binarne (biblioteki DLL itd.), które były używane w procesie zrzutu.

    Jeśli debugujesz zrzut z danymi sterty, Visual Studio może poradzić sobie z brakującymi plikami binarnymi dla niektórych modułów, ale musi mieć pliki binarne dla wystarczającej liczby modułów, aby generować prawidłowe stosy wywołań.Program Visual Studio zawiera moduły macierzyste w pliku zrzutu ze stertą.

  • Pliki symboli (.pdb) dla pliku .exe i innych plików binarnych.

  • Pliki źródłowe dla modułów, które cię interesują.

    Plik wykonywalny i pliki .pdb muszą dokładnie odpowiadać wersji i kompilacji plików używanych podczas tworzenia zrzutu.

    Można debugować z użyciem deasemblacji modułów, jeżeli nie można znaleźć plików źródłowych,

Domyślne ścieżki wyszukiwania dla plików wykonywalnych

Program Visual Studio automatycznie przeszukuje następujące lokalizacje plików wykonywalnych, które nie są zawarte w pliku zrzutu:

  1. Katalog zawierający plik zrzutu.

  2. Ścieżka modułu, który jest określony w pliku zrzutu.Jest to ścieżka modułu na komputerze, na który pobrano zrzut.

  3. Symbol ścieżki określone w Debugowanie, Opcje, symbole strona programu Visual Studio narzędzia, Opcje okno dialogowe.Do wyszukiwania na tej stronie można dodać więcej lokalizacji.

Używanie stron Nie znaleziono pliku binarnego/ symboli / źródła

Jeśli program Visual Studio nie może znaleźć plików niezbędnych do debugowania modułu w zrzut, witryna zostanie wyświetlona odpowiedniej strony (nie znaleziono Binary, znaleziono symbole nr, lub odnaleźć źródła nie).Strony te zawierają szczegółowe informacje o przyczynie problemu i zawierają łącza do czynności, które mogą pomóc w określeniu poprawnej lokalizacji plików.Zobacz Określanie plików symboli (.pdb) i plików źródłowych w debugerze programu Visual Studio.

Powrót do początku Zawartość

Zobacz też

Koncepcje

Debugowanie just in time w programie Visual Studio

Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace

Inne zasoby

Określanie plików symboli (.pdb) i plików źródłowych w debugerze programu Visual Studio