Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Plik zrzutu to migawka przedstawiająca proces, który był wykonywany i moduły załadowane dla aplikacji w danym momencie. Zrzut z informacjami o stercie zawiera również migawkę pamięci aplikacji w tym momencie.
Otwieranie pliku zrzutu ze stertą w programie Visual Studio przypomina zatrzymywanie się w punkcie przerwania w sesji debugowania. Chociaż nie można kontynuować wykonywania, możesz zbadać stosy, wątki i zmienne wartości aplikacji w momencie zrzutu.
Zrzuty pamięci są najczęściej używane do debugowania problemów z maszynami, do których deweloperzy nie mają dostępu. Możesz użyć pliku zrzutu z komputera klienta, gdy nie możesz odtworzyć awarii lub programu, który nie odpowiada, na własnej maszynie. Testerzy tworzą również zrzuty, aby zapisywać dane programu związane z awariami lub brakiem odpowiedzi do dalszych testów.
Debuger programu Visual Studio może zapisywać pliki zrzutu dla kodu zarządzanego lub natywnego. Może debugować pliki zrzutu utworzone przez program Visual Studio lub inne aplikacje, które zapisują pliki w formacie minidump .
Wymagania i ograniczenia
- Aby debugować pliki zrzutu z 64-bitowych maszyn, program Visual Studio musi być uruchomiony na 64-bitowej maszynie.
- Program Visual Studio może debugować pliki zrzutu zarządzanych aplikacji z systemu operacyjnego Linux.
- Program Visual Studio może debugować pliki zrzutu natywnych aplikacji z urządzeń ARM. Może również debugować zrzuty aplikacji zarządzanych z urządzeń ARM, ale tylko w natywnym debugerze.
- Aby debugować pliki zrzutu trybu jądra lub użyć rozszerzenia debugowania SOS.dll w programie Visual Studio, pobierz narzędzia debugowania dla systemu Windows w zestawie Sterowników systemu Windows (WDK).
- Program Visual Studio nie może debugować plików zrzutu zapisanych w starszym, pełnym formacie zrzutu w trybie użytkownika . Pełny zrzut w trybie użytkownika nie jest taki sam jak zrzut ze stosem.
- Debugowanie plików zrzutu zoptymalizowanego kodu może być trudne do zrozumienia. Na przykład inlinowanie funkcji przez kompilator może skutkować nieoczekiwanymi stosami wywołań, a inne optymalizacje mogą zmienić czas życia zmiennych.
Zrzut plików z stertami lub bez
Pliki zrzutu mogą zawierać informacje o stercie.
Pliki zrzutu ze stertami zawierają migawkę pamięci aplikacji, w tym wartości zmiennych, w czasie zrzutu. Program Visual Studio zapisuje również pliki binarne załadowanych modułów natywnych w pliku zrzutu przy użyciu sterty, co może ułatwić debugowanie. Program Visual Studio może ładować symbole z pliku zrzutu ze stertą, nawet jeśli nie może znaleźć pliku binarnego aplikacji.
Pliki zrzutu bez stosu są mniejsze niż zrzuty ze stosami, ale debuger musi załadować plik binarny aplikacji, aby znaleźć informacje o symbolach. Załadowane pliki binarne muszą dokładnie odpowiadać tym plikom, które były uruchomione podczas tworzenia zrzutu. Zrzuty plików bez stert zapisują tylko wartości zmiennych stosu.
Tworzenie pliku zrzutu
Podczas debugowania procesu w programie Visual Studio możesz zapisać plik zrzutu, gdy debuger zatrzymał się w punkcie przerwania lub wyjątku.
Po włączeniu debugowania just-In-Time można dołączyć debuger programu Visual Studio do procesu, który uległ awarii poza programem Visual Studio, a następnie zapisać plik zrzutu z debugera. Zobacz Dołączanie do uruchomionych procesów.
Aby zapisać plik zrzutu:
Po zatrzymaniu w punkcie błędu lub przerwania podczas debugowania wybierz pozycję Debug>Zapisz zrzut jako.
W oknie dialogowym Zapisywanie zrzutu jako, pod Zapisz jako typ, wybierz pozycję Minidump lub Minidump z Heapem (ustawienie domyślne).
Przejdź do ścieżki i wybierz nazwę pliku zrzutu, a następnie kliknij Zapisz.
Uwaga / Notatka
Pliki zrzutu można tworzyć za pomocą dowolnego programu obsługującego format minidump systemu Windows. Na przykład narzędzie wiersza polecenia Procdump z poziomu systemu Windows Sysinternals może tworzyć pliki zrzutu awaryjnego procesu na podstawie wyzwalaczy lub na żądanie. Zobacz Wymagania i ograniczenia , aby uzyskać informacje o korzystaniu z innych narzędzi do tworzenia plików zrzutu.
Otwieranie pliku zrzutu
W programie Visual Studio wybierz pozycję Plik>Otwórz>plik.
W oknie dialogowym Otwieranie pliku znajdź i wybierz plik zrzutu. Zwykle ma on rozszerzenie .dmp . Kliknij przycisk OK.
Okno Podsumowanie pliku Minidump zawiera podsumowanie i informacje o module dla pliku zrzutu oraz akcje, które można wykonać.
W obszarze Akcje:
- Aby ustawić lokalizacje ładowania symboli, wybierz pozycję Ustaw ścieżki symboli.
- Aby rozpocząć debugowanie, wybierz Tylko zarządzany, Mieszany, Tylko natywny.
- Aby przeanalizować pamięć zarządzaną, wybierz pozycję Debuguj pamięć zarządzaną i zobacz Raporty typów zarządzanych.
- Aby uruchomić analizator pamięci na zrzucie, wybierz pozycję Uruchom analizę diagnostyczną i zobacz sekcję Debugowanie zrzutu pamięci zarządzanej za pomocą analizatorów diagnostycznych platformy .NET.
Znajdź .exe, .pdb i źródła
Aby korzystać z funkcji pełnego debugowania w pliku zrzutu, program Visual Studio wymaga:
- Plik .exe , dla którego utworzono zrzut, oraz inne pliki binarne (takie jak biblioteki DLL), których użyto w procesie zrzutu.
- Pliki symboli (.pdb) dla .exe i innych plików binarnych.
- Pliki .exe i .pdb , które dokładnie pasują do wersji i kompilacji plików podczas tworzenia zrzutu.
- Pliki źródłowe dla odpowiednich modułów. Można użyć dezasemblacji modułów, jeśli nie możesz znaleźć plików źródłowych.
Jeśli zrzut zawiera dane stosu, program 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 wygenerować prawidłowe stosy wywołań.
Ścieżki wyszukiwania dla plików .exe
Visual Studio automatycznie wyszukuje następujące lokalizacje dla plików .exe, które nie są uwzględnione w pliku zrzutu:
Folder zawierający plik zrzutu.
Ścieżka modułu, którą określa plik zrzutu, jest ścieżką modułu na maszynie, która zebrała zrzut.
- Ścieżki symboli są określone w okienku Narzędzia (lub Debugowanie) >Opcje sekcji Wszystkie ustawienia>Debugowanie>Symbole. Możesz również otworzyć stronę Symbole z panelu Akcje w oknie Podsumowanie pliku zrzutu. Na tej stronie możesz dodać więcej lokalizacji do wyszukiwania.
- Ścieżki symboli są określone w oknie dialogowym Narzędzia (lub Opcje debugowania) > w sekcjiDebugowanie>symboli. Możesz również otworzyć stronę Symbole z panelu Akcje w oknie Podsumowanie pliku zrzutu. Na tej stronie możesz dodać więcej lokalizacji do wyszukiwania.
Użyj stron Brak danych binarnych, Brak symboli lub Nie znaleziono źródła
Jeśli program Visual Studio nie może odnaleźć plików, których potrzebuje do debugowania modułu w zrzucie, zostanie wyświetlona strona Nie znaleziono pliku binarnego, Brak znalezionych symboli lub Nie znaleziono źródła . Te strony zawierają szczegółowe informacje o przyczynie problemu i udostępniają linki akcji, które mogą pomóc w zlokalizowaniu plików. Zobacz także Określ symbol (.pdb) oraz pliki źródłowe.