Udostępnij za pośrednictwem


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.

zrzut ekranu przedstawiający okno stosu wywołań. 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.

Zrzut ekranu przedstawiający okno stosu wywołań.

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)

  1. 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.

  2. 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.

Przełącz przycisk Wyświetl wszystkie wątki, aby wyświetlić wszystkie powiązane wątki w oknie stosu równoległego .

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.

Pokaż stos wywołań na mapie kodu

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

  1. W oknie stosu wywołań kliknij prawym przyciskiem myszy ramkę stosu, dla której nie załadowano symboli. Ramka zostanie wygaszona.

  2. 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

  1. W oknie stosu wywołań wybierz ustawienia symboli z menu skrótów.

    Zostanie otwarte okno dialogowe Opcje i zostanie wyświetlona strona Symbole.

  2. Wybierz ustawienia symboli.

  3. W oknie dialogowym Opcje kliknij ikonę Folder.

    W polu lokalizacje pliku symboli (.pdb) pojawia się kursor.

  4. 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.

  5. Wybierz pozycję OK, aby zamknąć okno dialogowe Opcje.