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.

Spis treści

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?

Plik zrzutu jest migawką z aplikacji w momencie dokonywana zrzutu.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że załadować pliki zrzutu utworzone przez program Visual Studio lub przez inne programy, które zapisują pliki w formacie minizrzutu.

Powrót do początkuSpis treści

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ątkuSpis treści

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.

  • Aby debugować pliki zrzutu trybu jądra w Visual Studio 2013, pobierz Wersję narzędzi debugowania dla systemu Windows 8.1.Zobacz Debugowanie jądra w Visual Studio.

  • Visual Studio nie umożliwia debugowania plików zrzutu zapisanych w starszym formacie zrzutu, znanym jako pełny zrzut trybu użytkownika.Należy zauważyć, że pełny zrzut trybu użytkownika to nie to samo, co zrzut ze stertą.

  • Aby debugować z SOS.dll (rozszerzenie do debugowania SOS) w Visual Studio, należy zainstalować narzędzia debugowania dla Windows wchodzące w skład Windows Driver Kit (WDK).Zobacz Podgląd Windows 8.1: Zestawy, bity i narzędzia do pobrania.

Powrót do początkuSpis treści

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 narzędzie wiersza polecenia Procdump z programu Windows Sysinternals może tworzyć pliki zrzutu z awarii procesów na podstawie wyzwalaczy lub na żądanie.Zobacz Wymagania i ograniczenia w tym temacie, aby uzyskać dodatkowe informacje dotyczące korzystania z innych narzędzi do tworzenia plików zrzutu.

Powrót do początkuSpis treści

Otwieranie pliku zrzutu

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

  2. W oknie dialogowym Otwórz plik znajdź i wybierz plik zrzutu.Będzie zazwyczaj miał rozszerzenie .dmp.Następnie wybierz OK.

  3. Zostanie wyświetlone okno Podsumowanie pliku zrzutu.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 sekcji Akcje, a następnie wybierz opcję Debugowanie tylko za pomocą macierzystego lub Debugowanie za pomocą mieszanego.

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. Ścieżki symboli określone na stronie Debugowanie > Opcje > Symbole okna dialogowego Narzędzia > Opcje programu Visual Studio.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 potrzebnych do debugowania modułu w zrzucie, wyświetlana jest odpowiednia strona (Nie znaleziono pliku binarnego, Nie znaleziono symboli lub Nie znaleziono źródła).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ątkuSpis treści

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