Ladění aplikací Xamarin.iOS


Ladění knihoven tříd Mono

Xamarin.iOS se dodává se zdrojovým kódem knihoven tříd Mono a můžete ho použít k jednomu kroku z ladicího programu, abyste viděli, jak všechno funguje pod pokličkou.

Vzhledem k tomu, že tato funkce spotřebovává během ladění více paměti, je tato funkce ve výchozím nastavení vypnutá.

Pokud chcete tuto funkci povolit, ujistěte se, že je v nabídce ladicího programu předvolby Visual Studio pro Mac vybraná možnost Ladit kód projektu; nekročte do kódu architektury, jak je znázorněno níže:

Ladění knihoven tříd Mono

Jakmile to budete mít, můžete aplikaci spustit a provést jeden krok do kterékoli knihovny základních tříd Mono.

Aplikace Xamarin.iOS je možné ladit pomocí integrovaného ladicího programu v Visual Studio pro Mac nebo Visual Studio.

Pokud Visual Studio pro Mac ladění kódu jazyka C# a dalších spravovaných jazyků, použijte nativní podporu ladění jazyka Visual Studio pro Mac a použijte LLDB, pokud potřebujete ladit kód C, C++ nebo Objective C, který můžete propojit s projektem Xamarin.iOS.

Poznámka

Při kompilaci aplikací v režimu ladění bude Xamarin.iOS generovat pomalejší a mnohem větší aplikace, protože je nutné instrumentovat každý řádek kódu. Před vydáním se ujistěte, že máte sestavení pro vydání.

Ladicí program Xamarin.iOS je integrovaný do integrovaného vývojového prostředí (IDE) a umožňuje vývojářům ladit aplikace Xamarin.iOS vytvořené pomocí libovolného spravovaného jazyka podporovaného Xamarin.iOS v simulátoru a na zařízení.

Ladicí program Xamarin.iOS používá Mono Soft Debugger, což znamená, že vygenerovaný kód a Mono runtime spolupracují s rozhraním IDE, aby poskytovaly možnosti ladění. To se liší od pevných ladicích programů, jako jsou LLDB nebo MDB, které řídí program bez znalosti nebo spolupráce z laděného programu.

Nastavení zarážek

Až budete připraveni zahájit ladění aplikace, prvním krokem je nastavení zarážek aplikace. To se provádí kliknutím do oblasti okrajů editoru vedle čísla řádku kódu, na který chcete provést přerušení:

Všechny zarážky, které byly nastaveny v kódu, můžete zobrazit tak, že přejdeme na panel Breakpoints (Zarážky):

Panel Breakpoints (Zarážky)

Pokud se panel Breakpoints (Zarážky) nezobrazí automaticky, můžete ho zobrazit výběrem možnosti View Debug Windows > Breakpoints (Zobrazit zarážky ladění).

Než začnete ladit libovolnou aplikaci, vždy se ujistěte, že je konfigurace nastavená na Ladit, protože obsahuje užitečnou sadu nástrojů pro podporu ladění, jako jsou zarážky, používání vizualizérů dat a zobrazení zásobníku volání:

Spuštění ladění

Pokud chcete spustit ladění, vyberte v integrovaném vývojovém prostředí cílové zařízení nebo podobné:

Potom aplikaci nasaďte stisknutím tlačítka Přehrát.

Když se zobrazí zarážka, kód se zvýrazní žlutě:

Kód se zvýrazní žlutě.

Ladicí nástroje, jako je kontrola hodnot objektů, lze v tomto okamžiku použít k získání dalších informací o tom, co se děje ve vašem kódu:

Zobrazení hodnoty barvy

Podmíněné zarážky

Můžete také nastavit pravidla diktující okolnosti, za kterých by měla nastat zarážka. To se ví jako přidání podmíněné zarážky.

Pokud chcete nastavit podmíněnou zarážku, přistupte k okno Vlastnosti ,což lze provést dvěma způsoby:

  • Pokud chcete přidat novou podmíněnou zarážku, klikněte pravým tlačítkem na okraj editoru nalevo od čísla řádku pro kód, pro který chcete nastavit zarážku, a vyberte Nová zarážka:

    Vyberte New Breakpoint (Nová zarážka).

  • Pokud chcete přidat podmínku k existující zarážce, klikněte pravým tlačítkem na zarážku a vyberte Vlastnosti zarážky nebo v Oblasti zarážek vyberte tlačítko vlastností znázorněné níže:

    Panel zarážek

Pak můžete zadat podmínku, za které chcete vytvořit zarážku:

Zadejte podmínku pro zarážku, která se má objevit.

Po dosažení zarážky vám ladicí nástroje umožní získat kontrolu nad prováděním programu. Integrované vývojové prostředí (IDE) zobrazí čtyři tlačítka, která umožňují spuštění a krokování kódu.

V Visual Studio pro Mac budou vypadat takto:

Ladicí nástroje umožňují vývojáři získat kontrolu nad prováděním programu.

Jsou to:

  • Přehrát/zastavit – tím se zahájí/zastaví provádění kódu až do další zarážky.
  • Krok přes – spustí se další řádek kódu. Pokud je dalším řádem volání funkce, krok přes spustí funkci a zastaví se na dalším řádku kódu za funkcí.
  • Krok Do – spustí se také další řádek kódu. Pokud je dalším řádem volání funkce, krok Into se zastaví na prvním řádku funkce, což vám umožní pokračovat v ladění funkce řádek po řádku. Pokud další řádek není funkce, bude se chovat stejně jako Krok přes.
  • Krok Ven – vrátí se na řádek, kde byla volána aktuální funkce.

Zarážky

Je důležité odhlásit, že iOS poskytuje aplikacím pro spuštění jenom několik s (10) a dokončit FinishedLaunching metodu v delegátu aplikace. Pokud aplikace nedokončuje tuto metodu za 10 sekund, pak iOS proces ukončí.

To znamená, že není skoro možné nastavovat zarážky na spouštěcím kódu vašeho programu. Pokud chcete ladit spouštěcí kód, měli byste odložit některé jeho inicializaci a vložit je do metody vyvolané časovačem nebo v nějaké jiné formě metody zpětného volání, která se spustí po ukončení FinishedLaunching.

Diagnostika zařízení

pokud při nastavování ladicího programu dojde k chybě, můžete povolit podrobnou diagnostiku přidáním "-v-v-v" k dalším argumentům mtouch v možnostech Project. Tím se vytisknou podrobné informace o chybě do konzoly zařízení.

Bezdrátové ladění

Ve výchozím nastavení v Xamarin. iOS je ladění aplikace v zařízeních přes připojení USB. Někdy může být nutné, aby zařízení USB bylo potřeba k otestování zapojení kabelů nebo odpojení kabelu pro vývoj aplikací s ExternalAccessory. V těchto případech můžete použít ladění přes bezdrátovou síť.

Další informace o bezdrátovém nasazení a ladění najdete v průvodci nasazením bezdrátové sítě .

Technické podrobnosti

Xamarin. iOS používá nový měkký ladicí program mono. Na rozdíl od standardního ladicího programu mono, který je program, který řídí samostatný proces pomocí rozhraní operačního systému pro řízení samostatného procesu, funguje měkký ladicí program tím, že Mono runtime zveřejňuje funkce ladění prostřednictvím přenosového protokolu.

Při spuštění aplikace, která má být Laděna, kontaktuje Ladicí program a spustí ladicí program. v xamarin. iOS pro Visual Studio funguje Agent Xamarin Mac jako střední muž mezi aplikací (v Visual Studio) a ladicím programem.

Tento měkký ladicí program vyžaduje při spuštění na zařízení schéma ladění v družstvu. To znamená, že vaše binární sestavení v případě, že bude ladění větší, než je kód bude instrumentovat, aby obsahoval další kód v každém bodu sekvence pro podporu ladění.

Přístup ke konzole

protokoly chyb a výstup třídy konzoly bude odeslán do konzoly iPhone. K této konzole můžete přistupovat pomocí Xcode s použitím "Organizér" a výběrem zařízení z organizátoru.

případně, pokud nechcete spustit Xcode, můžete k přímému přístupu ke konzole použít konfigurační nástroj společnosti Apple pro iPhone. to má přidanou prémii, ke které můžete získat přístup k protokolům konzoly z Windows počítače, pokud ladíte problém v poli.

u Visual Studio uživatelů je v okně výstup k dispozici několik protokolů, ale měli byste přepnout na Mac a podrobnější a podrobné protokoly.