Wyświetlanie stosu wywołań i używanie okna stosu wywołań w debugerze
Korzystając z okna stosu wywołań, można wyświetlić funkcje lub wywołania procedur, które znajdują się obecnie na stosie. W oknie stos wywołań przedstawia kolejność, w jakiej wywoływane są metody i funkcje. Stos wywołań to dobry sposób na sprawdzenie i zrozumienie przepływu wykonywania kodu aplikacji.
Jeśli symbole debugowania nie są dostępne dla części stosu wywołań, okno stosu wywołań może nie być w stanie wyświetlić poprawnych informacji dla tej części, wyświetlając zamiast tego:
[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]
Notatka
Wyświetlane okna dialogowe i polecenia menu mogą się różnić od tych opisanych w tym miejscu, w zależności od aktywnych ustawień lub edycji. Aby zmienić ustawienia, wybierz pozycję Importuj i eksportuj ustawienia w menu Narzędzia. Zobacz Resetuj wszystkie ustawienia. Okno Stos wywołań jest podobne do perspektywy debugowania w niektórych środowiskach IDE, takich jak Eclipse.
Wyświetlanie stosu wywołań w debugerze
W menu Debug, podczas debugowania, wybierz Stos wywołań Windows > lub naciśnij ctrl
+alt
+C
.
Strzałka identyfikuje ramkę stosu, gdzie aktualnie znajduje się wskaźnik wykonywania. Domyślnie informacje tej ramki stosu są wyświetlane w oknach: Locals, Autos, Watch, oraz okna dezasemblacji. Aby zmienić kontekst debugera na inną ramkę na stosie, przełącz się na inną ramkę stosu.
Strzałka w kolorze żółtym identyfikuje ramkę stosu, w której znajduje się obecnie wskaźnik instrukcji. Domyślnie informacje tej ramki stosu są wyświetlane w źródle, Locals, Autos, Watchi dezasemblacji okien. Aby zmienić kontekst debugera na inny poziom stosu, przełącz na inny poziom stosu.
Możesz również wyświetlić ramki stosu wyjątków w stosie wywołań podczas debugowania. Aby uzyskać więcej informacji, zobacz Wyświetlanie stosu wywołań w pomocniku wyjątków.
Wyświetl kod nieużytkownika w oknie stosu wywołań
Aby wyświetlić kod zewnętrzny lub kod niepochodzący od użytkownika, kliknij prawym przyciskiem myszy w oknie Stos wywołań i wybierz opcję Pokaż kod zewnętrzny.
Aby wyświetlić kod zewnętrzny lub niepochodzący od użytkownika, przełącz przycisk Pokaż kod zewnętrzny na pasku narzędzi stosu wywołań lub kliknij prawym przyciskiem myszy w oknie Stos wywołań i wybierz Pokaż kod zewnętrzny.
Kod nienależący do użytkownika to każdy kod, który nie jest wyświetlany po włączeniu Tylko mój kod. W kodzie zarządzanym ramki kodu nieużytkownika są domyślnie ukryte. Następująca notacja jest wyświetlana zamiast ramek kodu innego niż użytkownik:
[<External Code>]
Przełącz się na inną ramkę stosu (zmień kontekst debugowania)
W oknie stosu wywołań, kliknij prawym przyciskiem myszy ramkę stosu, której kod i dane chcesz wyświetlić.
Możesz też kliknąć dwukrotnie ramkę w oknie stosu wywołań, aby przełączyć się do tej ramki.
Wybierz pozycję Przełącz na ramkę.
Obok wybranej ramki stosu pojawi się zielona strzałka z zakręconym ogonem. Wskaźnik wykonania pozostaje w oryginalnej ramce, która jest nadal oznaczona żółtą strzałką. Jeśli wybierzesz krok lub Kontynuuj z menu Debugowanie, wykonanie będzie kontynuowane w oryginalnej ramce, a nie w wybranej ramce.
Wyświetlanie wszystkich powiązanych wątków
Przełącz przycisk Wyświetl wszystkie wątki, aby wyświetlić wszystkie powiązane wątki w oknie stosu równoległego .
Wyszukiwanie w stosie wywołań
Odpowiednie ramki stosu wywołań można wyszukiwać, wpisując odpowiednie terminy wyszukiwania w polu wyszukiwania znajdującym się w lewym górnym rogu okna stosu wywołań. Odpowiednie klatki stosu wywołań zostaną zaznaczone.
Wyświetlanie kodu źródłowego funkcji w stosie wywołań
W oknie stosu wywołań kliknij prawym przyciskiem myszy funkcję, której kod źródłowy chcesz zobaczyć, i wybierz Przejdź do kodu źródłowego.
Przejdź do określonej funkcji w oknie stosu wywołań
W oknie stosu wywołań wybierz funkcję, kliknij prawym przyciskiem myszy, a następnie wybierz polecenie Uruchom do kursora.
Ustawianie punktu przerwania w punkcie wyjścia wywołania funkcji
Zobacz Ustawianie punktu przerwania w funkcji stosu wywołań.
Wyświetlanie wywołań do lub z innego wątku
Kliknij prawym przyciskiem myszy okno stosu wywołań i wybierz pozycję Dołącz wywołania do/z innych wątków.
Wizualne śledzenie stosu wywołań
W programie Visual Studio Enterprise (tylko) można wyświetlać mapy kodu dla stosu wywołań podczas debugowania.
W oknie stosu wywołań otwórz menu skrótów. Wybierz pozycję Pokaż stos wywołań na mapie kodu (Ctrl + Shift + `).
Aby uzyskać więcej informacji, zobacz metody mapy na stosie wywołań podczas debugowania.
Wyświetlanie kodu dezasemblacji funkcji w stosie wywołań (C#, C++, Visual Basic, F#)
W oknie stosu wywołań kliknij prawym przyciskiem myszy funkcję, której kod dezasemblacji chcesz wyświetlić i wybierz Przejdź do dezasemblacji.
Zmienianie wyświetlanych informacji opcjonalnych
Kliknij prawym przyciskiem myszy okno stosu wywołań i ustaw lub wyczyść Pokaż <informacje, które chcesz>.
Autodekompilacja kodu zewnętrznego platformy .NET
Począwszy od programu Visual Studio 2022 w wersji 17.7, możesz automatycznie skompilować kod .NET, klikając dwukrotnie kod zewnętrzny w oknie Stos wywołań. Aby uzyskać więcej informacji, zobacz Generowanie kodu źródłowego na podstawie zestawów platformy .NET podczas debugowania.
Ładowanie symboli dla modułu (C#, C++, Visual Basic, F#)
W oknie stos wywołań można załadować symbole debugowania dla kodu, w którym symbole nie są obecnie załadowane. Te symbole mogą być symbolami platformy .NET lub systemowymi pobranymi z publicznych serwerów symboli firmy Microsoft lub symbolami w ścieżce symboli na komputerze, na którym debugujesz.
Zobacz także Określ symbol (.pdb) oraz pliki źródłowe.
Aby załadować symbole
W oknie stosu wywołań kliknij prawym przyciskiem myszy ramkę stosu, dla której nie załadowano symboli. Ramka zostanie wygaszona.
Wskaż Załaduj symbole, a następnie wybierz Serwery symboli firmy Microsoft (jeśli są dostępne) lub przejrzyj ścieżkę symboli.
Aby ustawić ścieżkę symbolu
W oknie stosu wywołań wybierz ustawienia symboli z menu skrótów.
Zostanie otwarte okno dialogowe Opcje i zostanie wyświetlona strona Symbole.
Wybierz ustawienia symboli.
W oknie dialogowym Opcje kliknij ikonę Folder.
W polu lokalizacje pliku symboli (.pdb) pojawia się kursor.
Wprowadź nazwę ścieżki katalogu do lokalizacji symbolu na komputerze, na którym debugujesz. W przypadku lokalnego i zdalnego debugowania jest to ścieżka na komputerze lokalnym.
Wybierz pozycję OK, aby zamknąć okno dialogowe Opcje.