Použití map 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.
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í nástroje ladicího programu.
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 je chyba v programu kreslení, na kterém právě 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.
Začnete tedy hledat metodu Undo
. Najdete ho PaintCanvas
ve třídě.
Spuštění 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. Když vytvoříte nové mapování, může zaindexování kódu trvat nějakou dobu. To pomáhá rychlejšímu běhu pozdějších operací.
Tip
Zelené zvýraznění zobrazí poslední položky, které byly přidány do mapy. Zelená šipka zobrazuje pozici kurzoru v kódu. Šipky mezi položkami představují různé vztahy. Další informace o položkách na mapě získáte tak, že na ně přesunete myš a prozkoumáte jejich popisy.
Procházení a zkoumání kódu z mapy
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 přesune mezi položkami na mapě. Kurzor v editoru kódu se také přesune automaticky.
Tip
Zelenou šipku na mapě můžete také přesunout přesunutím kurzoru v editoru kódu.
Pochopení vztahů mezi částmi kódu
Teď chcete vědět, který jiný kód s těmito history
poli paintObjects
komunikuje. Můžete do mapy přidat všechny metody, které odkazují na tato pole. Můžete to udělat z mapy nebo editoru kódu.
Poznámka:
Pokud přidáte položky z projektu, který je sdílený napříč více aplikacemi, jako je Windows Telefon 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í a uspořádejte tak tok vztahů a usnadněte čtení z mapy. Položky kolem mapy lze také přesunout přetažením.
Tip
Ve výchozím nastavení je přírůstkové rozložení zapnuté. To při přidání nových položek mění uspořádání mapy co nejmé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í.
Podívejme se na tyto metody. Na mapě poklikejte na metodu Malování Canvas nebo vyberte tuto metodu a stiskněte klávesu F12. Zjistíte, že tato metoda vytvoří history
a paintObjects
jako prázdné seznamy.
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
.
Teď prozkoumejte definici addPaintObject
metody. Provádí také některé úlohy s history
a paintObjects
. Volá také Repaint
.
Nalezení příčiny 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
.
Pokud by nebyla nastavena mapa k zobrazení tohoto chybějícího volání, mohlo by být nalezení tohoto problému obtížnější, zejména u složitějšího kódu.
Sdílení zjištění a další kroky
Předtím, než vy nebo někdo jiný tuto chybu vyřeší, si můžete dělat na mapě poznámky o problému a způsobu jeho řešení.
Můžete například přidat komentáře do mapy a označit položky pomocí barev.
Pokud máte nainstalovanou aplikaci Microsoft Outlook, můžete mapu e-mailem odeslat ostatním. Mapu taky můžete exportovat jako obrázek nebo jiný formát.
Vyřešení problému a zobrazení provedené činnosti
Chcete-li tuto chybu opravit, přidáte volání Repaint
do undo
.
Chcete-li potvrdit svou opravu, restartujte relaci ladění a zkuste chybu reprodukovat. Když teď zvolíte Zpět, bude poslední tah fungovat tak, jak očekáváte, a potvrdíte, že jste udělali správnou opravu.
Můžete aktualizovat mapu, aby zobrazovala provedené opravy.
Mapa teď zobrazuje odkaz mezi vrácením zpět a překreslením.
Poznámka:
Při aktualizaci mapy se může zobrazit zpráva, že byl aktualizován index kódu použitý k vytvoření mapy. To znamená, že někdo změnil kód, což způsobilo, že se vaše mapa neshoduje s aktuálním kódem. To vám nezabrání v aktualizaci mapy, ale chcete-li ověřit, že mapa odpovídá kódu, pravděpodobně ji budete muset znovu vytvořit.
Teď jste s vyšetřováním hotovi. Úspěšně jste našli a opravili problém pomocí mapování kódu. Máte k dispozici také mapu, která usnadňuje navigaci v rámci kódu, zapamatuje si, co jste se naučili, a zobrazí kroky, které jste provedli v zájmu vyřešení problému.