Tworzenie wizualnej mapy stosu wywołań podczas debugowania (C#, Visual Basic, C++, JavaScript)

Utwórz mapę kodu, aby wizualnie śledzić stos wywołań podczas debugowania. Możesz tworzyć notatki na mapie, aby śledzić, co robi kod, aby skoncentrować się na znajdowaniu usterek.

Aby uzyskać szczegółowe informacje o poleceniach i akcjach, których można używać z mapami kodu, zobacz Przeglądanie i rozmieszczanie map kodu.

Ważne

Mapy kodu można tworzyć tylko w programie Visual Studio Enterprise.

Oto krótkie spojrzenie na mapę kodu:

Debugging with call stacks on code maps

Mapuj stos wywołań

  1. W projekcie Visual Studio Enterprise C#, Visual Basic, C++lub JavaScript rozpocznij debugowanie, wybierając pozycję Debuguj>rozpocznij debugowanie lub naciskając klawisz F5.

  2. Po wprowadzeniu trybu przerwania aplikacji lub przejściu do funkcji wybierz pozycję Debuguj>mapę kodu lub naciśnij klawisze Ctrl+Shift.+`

    Bieżący stos wywołań jest wyświetlany w kolorze pomarańczowym na nowej mapie kodu:

    See call stack on code map

Mapa kodu jest aktualizowana automatycznie podczas dalszego debugowania. Zmiana elementów mapy lub układu nie wpływa na kod w żaden sposób. Możesz dowolnie zmienić nazwę, przenieść lub usunąć elementy na mapie.

Aby uzyskać więcej informacji o elemencie, umieść kursor na nim i przyjrzyj się etykietce narzędzia elementu. Możesz również wybrać pozycję Legenda na pasku narzędzi, aby dowiedzieć się, co oznacza każda ikona.

Code Map Legend

Uwaga

Komunikat Diagram może być oparty na starszej wersji kodu w górnej części mapy kodu oznacza, że kod mógł ulec zmianie po ostatniej aktualizacji mapy. Na przykład wywołanie mapy może już nie istnieć w kodzie. Zamknij komunikat, a następnie spróbuj odbudować rozwiązanie przed ponowną aktualizacją mapy.

Mapuj kod zewnętrzny

Domyślnie na mapie jest wyświetlany tylko własny kod. Aby wyświetlić kod zewnętrzny na mapie:

  • Kliknij prawym przyciskiem myszy w oknie Stos wywołań i wybierz polecenie Pokaż kod zewnętrzny:

    Display external code using the Call Stack window

  • Możesz też usunąć zaznaczenie pozycji Włącz tylko mój kod w narzędziach Visual Studio Tools (lub debugowaniu)> Opcje>debugowania:

    Show external code using Options dialog

Kontrolowanie układu mapy

Zmiana układu mapy nie wpływa na kod w żaden sposób.

Aby kontrolować układ mapy, wybierz menu Układ na pasku narzędzi mapy.

W menu Układ można wykonywać następujące czynności:

  • Zmiana układu domyślnego.
  • Zatrzymaj automatyczne rozmieszczanie mapy, usuwając zaznaczenie opcji Automatycznie układ podczas debugowania.
  • Zmień kolejność mapy tak mało, jak to możliwe podczas dodawania elementów, usuwając zaznaczenie układu przyrostowego.

Zanotuj kod

Możesz dodawać komentarze, aby śledzić, co się dzieje w kodzie.

Aby dodać komentarz, kliknij prawym przyciskiem myszy mapę kodu i wybierz polecenie Edytuj>nowy komentarz, a następnie wpisz komentarz.

Aby dodać nowy wiersz w komentarzu, naciśnij klawisz Shift+Enter.

Add comment to call stack on code map

Aktualizowanie mapy przy użyciu następnego stosu wywołań

Gdy uruchamiasz aplikację w następnym punkcie przerwania lub przechodzisz do funkcji, mapa automatycznie dodaje nowe stosy wywołań.

Update code map with next call stack

Aby zatrzymać automatyczne dodawanie nowych stosów wywołań, wybierz Show call stack on code map automatically pasek narzędzi mapy kodu. Mapa nadal wyróżnia istniejące stosy wywołań. Aby ręcznie dodać bieżący stos wywołań do mapy, naciśnij klawisze Ctrl+Shift+`.

Dodawanie powiązanego kodu do mapy

Teraz, gdy masz mapę w języku C# lub Visual Basic, możesz dodawać elementy, takie jak pola, właściwości i inne metody, aby śledzić, co dzieje się w kodzie.

Aby przejść do definicji metody w kodzie, kliknij dwukrotnie metodę na mapie lub wybierz ją i naciśnij klawisz F12 lub kliknij ją prawym przyciskiem myszy i wybierz polecenie Przejdź do definicji.

Go to code definition for a method on code map

Aby dodać elementy, które chcesz śledzić na mapie, kliknij prawym przyciskiem myszy metodę i wybierz elementy, które chcesz śledzić. Ostatnio dodane elementy są wyświetlane na zielono.

Fields related to a method on call stack code map

Uwaga

Domyślnie dodanie elementów do mapy powoduje również dodanie węzłów grupy nadrzędnej, takich jak klasa, przestrzeń nazw i zestaw. Tę funkcję można wyłączyć i włączyć, wybierając przycisk Uwzględnij elementy nadrzędne na pasku narzędzi mapy kodu lub naciskając klawisze Ctrl podczas dodawania elementów.

Show fields in a method on call stack code map

Kontynuuj tworzenie mapy, aby zobaczyć więcej kodu.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Znajdowanie usterek przy użyciu mapy

Wizualizacja kodu pomoże w szybszym znalezieniu błędów. Załóżmy na przykład, że badasz usterkę w aplikacji rysunkowej. Po narysowaniu linii, w przypadku próby cofnięcia nic się nie dzieje, aż do rysowania kolejnej linii.

Dlatego ustawiasz punkty przerwania w clearmetodach , undoi Repaint , rozpocznij debugowanie i skompilujesz mapę podobną do następującej:

Add another call stack to code map

Zauważysz, że wszystkie gesty użytkownika w wywołaniu Repaintmapy , z wyjątkiem undo. Może to wyjaśnić, dlaczego undo nie działa natychmiast.

Po naprawieniu usterki i kontynuowaniu uruchamiania aplikacji mapa dodaje nowe wywołanie z undo do :Repaint

Add new method call to call stack on code map

Udostępnianie mapy innym osobom

Możesz wyeksportować mapę, wysłać ją do innych osób za pomocą programu Microsoft Outlook, zapisać ją w rozwiązaniu i zaewidencjonować w kontroli wersji.

Aby udostępnić lub zapisać mapę, użyj opcji Udostępnij na pasku narzędzi mapy kodu.

Share call stack code map with others