Wyświetlanie stosu wywołań i używanie okna stosu wywołań w debugerze

Za pomocą okna stosu wywołań można wyświetlić wywołania funkcji lub procedury, które znajdują się obecnie na stosie. W oknie Stos wywołań jest wyświetlana kolejność wywoływania metod i funkcji. Stos wywołań to dobry sposób na sprawdzenie i zrozumienie przepływu wykonywania 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 stosu wywołań, wyświetlając zamiast tego:

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Uwaga

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 Resetowanie wszystkich ustawień. Okno Stos wywołań jest podobne do perspektywy debugowania w niektórych środowiskach IDE, takich jak Eclipse.

Wyświetlanie stosu wywołań w debugerze

Podczas debugowania w menu Debugowanie wybierz pozycję Stos wywołań systemu Windows > lub naciśnij klawisz+ctrlalt+C .

Screenshot showing the Call Stack Window. Strzałka identyfikuje ramkę stosu, w której znajduje się obecnie wskaźnik wykonywania. Domyślnie informacje tej ramki stosu są wyświetlane w oknach źródłowych, lokalnych, automatycznych, kontrolnych i dezasemblacji. Aby zmienić kontekst debugera na inną ramkę na stosie, przełącz się na inną ramkę stosu.

Screenshot showing the Call Stack Window.

Żółta strzałka identyfikuje ramkę stosu, w której znajduje się obecnie wskaźnik wykonywania. Domyślnie informacje tej ramki stosu są wyświetlane w oknach źródłowych, lokalnych, automatycznych, kontrolnych i dezasemblacji. Aby zmienić kontekst debugera na inną ramkę na stosie, przełącz się na inną ramkę 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świetlanie kodu innego niż użytkownik w oknie stosu wywołań

Aby wyświetlić kod zewnętrzny lub inny niż użytkownik, przełącz polecenie Pokaż kod zewnętrzny kliknij prawym przyciskiem myszy okno Stos wywołań i wybierz polecenie Pokaż kod zewnętrzny.

Aby wyświetlić kod zewnętrzny lub inny niż użytkownik, przełącz przycisk Pokaż kod zewnętrzny na pasku narzędzi stosu wywołań lub kliknij prawym przyciskiem myszy okno Stos wywołań i wybierz pozycję Pokaż kod zewnętrzny.

Kod inny niż użytkownik to dowolny kod, który nie jest wyświetlany po włączeniu opcji 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ę do innej ramki stosu (zmień kontekst debugera)

  1. W oknie Stos 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 zostanie wyświetlona zielona strzałka z zwięźle ogonem. Wskaźnik wykonywania pozostaje w oryginalnej ramce, która jest nadal oznaczona żółtą strzałką. Jeśli wybierzesz pozycję Krok lub Kontynuuj z menu Debuguj , 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 ramki stosu wywołań zostaną wyróżnione.

Wyświetlanie kodu źródłowego funkcji w stosie wywołań

W oknie Stos wywołań kliknij prawym przyciskiem myszy funkcję, której kod źródłowy chcesz wyświetlić, i wybierz polecenie Przejdź do kodu źródłowego.

Uruchamianie do określonej funkcji w oknie stosu wywołań

W oknie Stos 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 Stos 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 Stos 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 Mapowanie metod na stosie wywołań podczas debugowania.

Show Call Stack on Code Map

Wyświetlanie kodu dezasemblacji funkcji w stosie wywołań (C#, C++, Visual Basic, F#)

W oknie Stos wywołań kliknij prawym przyciskiem myszy funkcję, której kod dezasemblacji chcesz zobaczyć i wybierz polecenie Przejdź do dezasemblacji.

Zmienianie wyświetlanych informacji opcjonalnych

Kliknij prawym przyciskiem myszy okno Stos wywołań i ustaw lub wyczyść pole Pokaż <odpowiednie> informacje.

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, który obecnie nie ma załadowanych symboli. 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 Określanie symboli (.pdb) i plików źródłowych.

Aby załadować symbole

  1. W oknie Stos wywołań kliknij prawym przyciskiem myszy ramkę stosu, dla której symbole nie są ładowane. Ramka zostanie wygaszona.

  2. Wskaż polecenie Załaduj symbole, a następnie wybierz pozycję Serwery symboli firmy Microsoft (jeśli są dostępne) lub przejdź do ścieżki symboli.

Aby ustawić ścieżkę symbolu

  1. W oknie Stos wywołań wybierz pozycję Symbol Ustawienia z menu skrótów.

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

  2. Wybierz pozycję Symbol Ustawienia.

  3. W oknie dialogowym Opcje kliknij ikonę Folder.

    W polu Lokalizacje pliku symboli (.pdb) zostanie wyświetlony 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 przycisk OK , aby zamknąć okno dialogowe Opcje .