Vytvoření vizuální mapy zásobníku volání při ladění (C#, Visual Basic, C++, JavaScript)

Vytvořte mapu kódu pro vizuální trasování zásobníku volání při ladění. Na mapě můžete dělat poznámky, abyste mohli sledovat, co kód dělá, abyste se mohli soustředit na hledání chyb.

Podrobnosti o příkazech a akcích, které můžete použít s mapami kódu, najdete v tématu Procházení a změna uspořádání map kódu.

Důležité

Mapy kódu můžete vytvářet pouze v edici Visual Studio Enterprise.

Tady je rychlý přehled mapy kódu:

Debugging with call stacks on code maps

Mapování zásobníku volání

  1. V projektu Visual Studio Enterprise C#, Visual Basic, C++ nebo JavaScript spusťte ladění výběrem >možnosti Spustit ladění nebo stisknutím klávesy F5.

  2. Jakmile aplikace přejde do režimu přerušení nebo přejdete do funkce, vyberte Mapu kódu ladění>nebo stiskněte kombinaci kláves Ctrl+Shift.+`

    Aktuální aktuální zásobník volání se zobrazí oranžově na mapě nového kódu:

    See call stack on code map

Mapování kódu se automaticky aktualizuje, jakmile budete pokračovat v ladění. Změna položek nebo rozložení mapy nijak neovlivní kód. Nebojte se přejmenovat, přesunout nebo odebrat cokoli na mapě.

Pokud chcete získat další informace o položce, najeďte myší na ni a podívejte se na popis položky. Na panelu nástrojů můžete také vybrat legendu a zjistit, co jednotlivé ikony znamenají.

Code Map Legend

Poznámka:

Zpráva Diagram může být založená na starší verzi kódu v horní části mapy kódu znamená, že se kód mohl po poslední aktualizaci mapy změnit. Například volání do mapy nemusí již v kódu existovat. Zavřete zprávu a potom zkuste znovu sestavit řešení před opětovnou aktualizací mapy.

Mapování externího kódu

Ve výchozím nastavení se na mapě zobrazí jenom váš vlastní kód. Zobrazení externího kódu na mapě:

  • Klikněte pravým tlačítkem v okně Zásobník volání a vyberte Zobrazit externí kód:

    Display external code using the Call Stack window

  • Nebo zrušte výběr možnosti Povolit pouze můj kód v nástrojích Visual Studio Tools (nebo ladění)>> Ladění:

    Show external code using Options dialog

Řízení rozložení mapy

Změna rozložení mapy nijak neovlivní kód.

Pokud chcete řídit rozložení mapy, vyberte na panelu nástrojů mapy nabídku Rozložení .

V nabídce Rozložení můžete:

  • Změňte výchozí rozložení.
  • Automatické uspořádání mapy zastavíte zrušením výběru automatického rozložení při ladění.
  • Pokud přidáváte položky, změňte uspořádání mapy co nejméně tak, že zrušíte výběr přírůstkového rozložení.

Vytváření poznámek k kódu

Přidáním komentářů můžete sledovat, co se děje v kódu.

Pokud chcete přidat komentář, klikněte pravým tlačítkem na mapu kódu a vyberte Upravit>nový komentář a zadejte komentář.

Pokud chcete do komentáře přidat nový řádek, stiskněte Shift+Enter.

Add comment to call stack on code map

Aktualizace mapy pomocí dalšího zásobníku volání

Když aplikaci spustíte na další zarážku nebo krok do funkce, mapa automaticky přidá nové zásobníky volání.

Update code map with next call stack

Pokud chcete mapě zabránit v automatickém přidávání nových zásobníků volání, vyberte Show call stack on code map automatically na panelu nástrojů mapy kódu. Mapa nadále zvýrazňuje existující zásobníky volání. Pokud chcete do mapy ručně přidat aktuální zásobník volání, stiskněte kombinaci kláves Ctrl+Shift.+`

Přidání souvisejícího kódu do mapy

Teď, když máte mapu v jazyce C# nebo Visual Basic, můžete přidat položky, jako jsou pole, vlastnosti a další metody, a sledovat, co se v kódu děje.

Pokud chcete přejít k definici metody v kódu, poklikejte na metodu v mapě nebo ji vyberte a stiskněte klávesu F12, nebo na ni klikněte pravým tlačítkem myši a vyberte Přejít na definici.

Go to code definition for a method on code map

Pokud chcete do mapy přidat položky, které chcete sledovat, klikněte pravým tlačítkem myši na metodu a vyberte položky, které chcete sledovat. Naposledy přidané položky se zobrazují zeleně.

Fields related to a method on call stack code map

Poznámka:

Ve výchozím nastavení přidáte položky do mapy také uzly nadřazené skupiny, jako je třída, obor názvů a sestavení. Tuto funkci můžete vypnout a zapnout tak , že na panelu nástrojů mapy kódu vyberete tlačítko Zahrnout rodiče nebo stisknete klávesu Ctrl a přidáte položky.

Show fields in a method on call stack code map

Pokračujte v sestavování mapy, pokud chcete zobrazit další kód.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Vyhledání chyb pomocí mapy

Vizualizace kódu můžete nalézt chyby rychleji. Předpokládejme například, že zkoumáte chybu v aplikaci kreslení. Když nakreslíte čáru a pokusíte se vrátit akci zpět, nic se nestane, dokud nenakreslíte další čáru.

Proto nastavíte zarážky v objektech clear, undoa Repaint metodách, spustíte ladění a sestavíte mapu takto:

Add another call stack to code map

Všimněte si, že všechna uživatelská gesta na mapě volání Repaint, s výjimkou undo. To může vysvětlit, proč undo nefunguje okamžitě.

Jakmile chybu opravíte a budete pokračovat ve spuštění aplikace, mapa přidá nové volání z undoRepaint:

Add new method call to call stack on code map

Sdílení mapy s ostatními

Mapu můžete exportovat, poslat ostatním pomocí Microsoft Outlooku, uložit ji do řešení a zkontrolovat ji do správy verzí.

Pokud chcete mapu sdílet nebo uložit, použijte možnost Sdílet na panelu nástrojů mapy kódu.

Share call stack code map with others