Sdílet prostřednictvím


Použijte mapy kódu k ladění aplikací

Mapy kódu v sadě Visual Studio vám můžou pomoct vyhnout se ztrátě ve velkých základech kódu, neznámém kódu nebo starším kódu. Když například ladíte, budete se muset podívat na kód v mnoha souborech a projektech. Pomocí map kódu můžete procházet části kódu a porozumět vztahům mezi nimi. Tímto způsobem nemusíte sledovat tento kód v hlavě ani kreslit samostatný diagram. Takže když dojde k přerušení vaší práce, mapy kódu pomáhají aktualizovat paměť o kódu, na kterém pracujete.

Mapa kódu – mapování relací v kódu

Zelená šipka ukazuje, kde se v editoru zobrazuje kurzor.

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

Přečtěte si další informace o ladění v sadě Visual Studio pomocí ladicího nástroje.

Poznámka:

K vytváření a úpravám map kódu potřebujete edici Visual Studio Enterprise. V edicích Visual Studio Community a Professional můžete otevřít diagramy vygenerované v edici Enterprise, ale nemůžete je upravovat.

Pochopení problému

Předpokládejme, že ve výkresovém programu došlo k chybě, na které pracujete. Pokud chcete chybu reprodukovat, otevřete řešení v sadě Visual Studio a stisknutím klávesy F5 spusťte ladění.

Když nakreslíte čáru a zvolíte Zpět poslední tah, nic se nestane, dokud nenakreslíte další čáru.

Mapa kódu – Chyba repro

Začnete tedy hledat metodu Undo . Najdete ho PaintCanvas ve třídě.

Mapa kódu – Vyhledání kódu

Zahájení mapování kódu

Teď začněte mapovat metodu undo a její relace. V editoru kódu přidáte metodu undo a pole, která odkazuje na novou mapu kódu. Při vytváření nové mapy může chvíli trvat indexování kódu. To pomáhá rychlejšímu spouštění pozdějších operací.

Mapa kódu – Zobrazení metody a souvisejících polí

Návod

Zelené zvýraznění zobrazuje poslední položky přidané do mapy. Zelená šipka zobrazuje pozici kurzoru v kódu. Šipky mezi položkami představují různé relace. Další informace o položkách na mapě získáte tak, že na ně přesunete myš a prozkoumáte jejich popisy.

Mapa kódu – Zobrazit popisy

Pokud chcete zobrazit definici kódu pro každé pole, poklikejte na pole na mapě nebo vyberte pole a stiskněte klávesu F12. Zelená šipka se pohybuje mezi položkami na mapě. Kurzor v editoru kódu se také automaticky přesune.

Snímek obrazovky s oknem mapy kódu s vybraným polem historie a oknem editoru kódu, kde jsou zvýrazněny všechny instance historie

Snímek obrazovky s oknem mapy kódu s vybraným polem paintObjects a oknem editoru kódu, kde jsou zvýrazněny všechny instance paintObjects

Návod

Zelenou šipku na mapě můžete také přesunout přesunutím kurzoru v editoru kódu.

Principy vztahů mezi částmi kódu

Nyní chcete vědět, který jiný kód komunikuje s poli history a paintObjects. Do mapy můžete přidat všechny metody, které odkazují na tato pole. Můžete to udělat z mapy nebo editoru kódu.

Mapa kódu – Vyhledání všech odkazů

Otevření mapy kódu z editoru kódu

Poznámka:

Pokud přidáte položky z projektu, který je sdílený ve více aplikacích, jako je Windows Phone nebo Windows Store, zobrazí se tyto položky vždy s aktuálně aktivním projektem aplikace na mapě. Pokud tedy změníte kontext na jiný projekt aplikace, kontext na mapě se také změní pro všechny nově přidané položky ze sdíleného projektu. Operace, které provádíte s položkou na mapě, se vztahují pouze na ty položky, které sdílejí stejný kontext.

Změňte rozložení tak, aby přeuspořádaly tok relací a usnadnily čtení mapy. Položky můžete také přesouvat po mapě přetažením.

Snímek obrazovky s oknem mapy kódu s otevřenou nabídkou Rozložení a vybraným příkazem Left to Rgiht

Návod

Ve výchozím nastavení je přírůstkové rozložení zapnuté. Při přidávání nových položek se mapa co nejméně mění. Pokud chcete změnit uspořádání celé mapy při každém přidání nových položek, vypněte přírůstkové rozložení.

Snímek obrazovky s oknem mapy kódu se šipkami relace mezi poli směřujícími zleva doprava

Pojďme se podívat na tyto metody. Na mapě poklikejte na metodu PaintCanvas nebo vyberte tuto metodu a stiskněte klávesu F12. Zjistíte, že tato metoda vytvoří history a paintObjects jako prázdné seznamy.

Snímek obrazovky s oknem mapy kódu s vybranou metodou PaintCanvas a obrázkem fragmentu kódu se zvýrazněným názvem metody PainCanvas

Teď opakujte stejný postup a prozkoumejte definici clear metody. Zjistíte, že clear provádí některé úlohy s paintObjects a history. Potom volá metodu Repaint .

Snímek obrazovky s oknem mapy kódu s vybranou metodou Clear a obrázkem fragmentu kódu zobrazující kód pro metodu Clear

Teď prozkoumejte definici addPaintObject metody. Provádí také některé úlohy s history a paintObjects. Volá také Repaint.

Snímek obrazovky s oknem mapy kódu s vybranou metodou addPaintObject a obrázkem fragmentu kódu zobrazující kód metody addPaintObject

Zjištění problému prozkoumáním mapy

Zdá se, že všechny metody, které upravují history a paintObjects volají Repaint. undo Metoda však nevolá Repaint, i když undo upraví stejná pole. Takže si myslíte, že můžete tento problém vyřešit voláním Repaint z undo.

Mapa kódu – Vyhledání chybějícího volání metody

Pokud jste neměli mapu k zobrazení tohoto chybějícího volání, mohlo by být obtížnější tento problém najít, zejména u složitějšího kódu.

Sdílení zjišťování a dalších kroků

Než tuto chybu opravíte vy nebo někdo jiný, můžete si na mapě udělat poznámky o problému a jak ji opravit.

Mapa kódu – Komentování a označení položek pro sledování

Například můžete do mapy přidávat komentáře a označovat položky pomocí barev.

Mapa kódu – Okomentované a označené položky

Pokud máte nainstalovaný Microsoft Outlook, můžete mapu poslat e-mailem ostatním. Mapu můžete také exportovat jako obrázek nebo jiný formát.

Mapa kódu – Sdílení, export, pošta

Oprava problému a zobrazení toho, co jste udělali

Chcete-li tuto chybu opravit, přidáte volání Repaint do undo.

Mapa kódu – Přidání chybějícího volání metody

Pokud chcete potvrdit opravu, restartujte ladicí relaci a zkuste chybu reprodukovat. Když teď zvolíte Zpět: poslední tah, funguje to tak, jak očekáváte, a potvrzuje, že jste provedli správnou opravu.

Mapa kódu – Potvrzení opravy kódu

Mapu můžete aktualizovat tak, aby zobrazovala opravu, kterou jste provedli.

Mapa kódu – aktualizace mapy s chybějícím voláním metody

Mapa nyní zobrazuje spojení mezi vrácením zpět a překreslením.

Mapa kódu – aktualizace mapy pomocí volání metody

Poznámka:

Při aktualizaci mapy se může zobrazit zpráva s informací, že se aktualizoval index kódu použitý k vytvoření mapy. To znamená, že někdo změnil kód, což způsobí, že vaše mapa neodpovídá aktuálnímu kódu. To vám nezabrání v aktualizaci mapy, ale možná budete muset mapu znovu vytvořit, abyste potvrdili, že odpovídá kódu.

Teď jste s vyšetřováním hotovi. Úspěšně jste našli a opravili problém namapováním kódu. Máte také mapu, která vám pomůže procházet kód, pamatovat si, co jste se naučili, a ukazuje kroky, které jste provedli k vyřešení problému.