Aracılığıyla paylaş


Xamarin.iOS Uygulamalarında Hata Ayıklama

Xamarin.iOS uygulamaları, Mac için Visual Studio veya Visual Studio'daki yerleşik hata ayıklayıcı ile hata ayıklanabilir.

C# ve diğer yönetilen dil kodlarında hata ayıklamak için Mac için Visual Studio yerel hata ayıklama desteğini kullanın ve Xamarin.iOS projenize bağlamış olabileceğiniz C, C++ veya Objective C kodunda hata ayıklamanız gerektiğinde LLDB kullanın.

Not

Uygulamaları Hata Ayıklama modunda derlediğinizde, her kod satırının izlenmiş olması gerektiğinden Xamarin.iOS daha yavaş ve çok daha büyük uygulamalar oluşturur. Yayınlamadan önce bir Yayın derlemesi yaptığınızdan emin olun.

Xamarin.iOS hata ayıklayıcısı IDE'nizle tümleşiktir ve geliştiricilerin simülatörde ve cihazda Xamarin.iOS tarafından desteklenen herhangi bir yönetilen dille oluşturulan Xamarin.iOS uygulamalarında hata ayıklamasına olanak tanır.

Xamarin.iOS hata ayıklayıcısı Mono Yumuşak Hata Ayıklayıcı'yı kullanır. Bu, oluşturulan kod ve Mono çalışma zamanının bir hata ayıklama deneyimi sağlamak için IDE ile işbirliği yaptığı anlamına gelir. Bu, hata ayıklanan programın bilgisi veya işbirliği olmadan bir programı denetleyen LLDB veya MDB gibi sabit hata ayıklayıcılardan farklıdır.

Kesme Noktalarını Ayarlama

Uygulamanızda hata ayıklamaya başlamaya hazır olduğunuzda, ilk adım uygulamanızın kesme noktalarını ayarlamaktır. Bu işlem, düzenleyicinin kenar boşluğu alanına tıklayarak, kesmek istediğiniz kod satır numarasının yanına tıklanarak yapılır:

Kesme noktaları bölmesine giderek kodunuzda ayarlanmış olan tüm kesme noktalarını görüntüleyebilirsiniz:

The Breakpoints pad

Kesme Noktaları bölmesi otomatik olarak görüntülenmiyorsa, Hata Ayıklamayı Görüntüle Windows > Kesme Noktalarını Görüntüle'yi > seçerek bölmeyi görünür hale getirebilirsiniz

Herhangi bir uygulamada hata ayıklamaya başlamadan önce, kesme noktaları, veri görselleştiricileri kullanma ve çağrı yığınını görüntüleme gibi hata ayıklamayı destekleyen yararlı bir araç kümesi içerdiğinden yapılandırmanın Hata Ayıklama olarak ayarlandığından emin olun:

Hata Ayıklamayı Başlat

Hata ayıklamaya başlamak için IDE'nizde hedef cihazı veya benzerini seçin:

Ardından Yürüt düğmesine basarak uygulamanızı dağıtın.

Kesme noktasına bastığınızda kod sarı renkte vurgulanır:

The code will be highlighted yellow

Bu noktada, kodunuzda neler olduğu hakkında daha fazla bilgi edinmek için nesnelerin değerlerini inceleme gibi hata ayıklama araçları kullanılabilir:

Displaying a color value

Koşullu Kesme Noktaları

Ayrıca, bir kesme noktasının oluşması gereken koşulları dikte eden kurallar da ayarlayabilirsiniz; bu, koşullu kesme noktası ekleme olarak bilinmektedir.

Koşullu kesme noktası ayarlamak için kesme noktası Özellikler penceresi erişin ve bu iki yolla yapılabilir:

  • Yeni bir koşullu kesme noktası eklemek için, kesme noktası ayarlamak istediğiniz kodun satır numarasının sol tarafındaki düzenleyici kenar boşluğuna sağ tıklayın ve Yeni Kesme Noktası'nı seçin:

    Select New Breakpoint

  • Var olan bir kesme noktasına koşul eklemek için kesme noktasına sağ tıklayın ve Kesme Noktası Özellikleri'ni seçin veya Kesme Noktaları Bölmesi'nde aşağıda gösterilen özellikler düğmesini seçin:

    The Breakpoints Pad

Ardından, kesme noktasının gerçekleşmesini istediğiniz koşulu girebilirsiniz:

Enter the condition for the breakpoint to occur

Bir kesme noktasına ulaşıldığında, Hata Ayıklama araçları programın yürütülmesi üzerinde denetim sahibi olmanıza olanak tanır. IDE, kodu çalıştırmanıza ve adım adım ilerletmeye olanak sağlayan dört düğme görüntüler.

Mac için Visual Studio aşağıdaki gibi görünürler:

The Debug tools enable the developer to get control over the program’s execution

Bu ifadeler şunlardır:

  • Yürüt/Durdur – Bu işlem, sonraki kesme noktasına kadar kodu yürütmeye başlar/durur.
  • Step Over : Bu işlem bir sonraki kod satırını yürütür. Sonraki satır bir işlev çağrısıysa, step over işlevi yürütür ve işlevden sonraki kod satırında durur.
  • Step Into : Bu, bir sonraki kod satırını da yürütür. Sonraki satır bir işlev çağrısıysa, Adımla işlevin ilk satırında durur ve işlevin satır satır hata ayıklamasına devam edebilirsiniz. Sonraki satır bir işlev değilse, AdımLa aynı şekilde davranır.
  • Step Out – Bu, geçerli işlevin çağrıldığı satıra döner.

Kesme noktaları

iOS'un uygulamalara başlatması ve Uygulama temsilcisinde yöntemi tamamlaması FinishedLaunching için yalnızca birkaç saniye (10) verdiğini belirtmek önemlidir. Uygulama bu yöntemi 10 saniye içinde tamamlamazsa, iOS işlemi sonlandıracaktır.

Bu, programınızın başlangıç kodunda kesme noktaları ayarlamanın neredeyse imkansız olduğu anlamına gelir. Başlangıç kodunuzun hatalarını ayıklamak istiyorsanız, başlatma işleminin bir bölümünü geciktirmeli ve bunu zamanlayıcı tarafından çağrılan bir yönteme veya FinishedLaunching sonlandırıldıktan sonra yürütülen başka bir geri çağırma yöntemi biçimine yerleştirmelisiniz.

Cihaz Tanılama

Hata ayıklayıcıyı ayarlarken bir hata varsa, Proje Seçeneklerinizdeki ek mtouch bağımsız değişkenlerine "-v -v -v" ekleyerek ayrıntılı tanılamayı etkinleştirebilirsiniz. Bu, ayrıntılı hata bilgilerini cihaz konsoluna yazdırır.

Kablosuz Hata Ayıklama

Xamarin.iOS'ta varsayılan değer, usb bağlantısı üzerinden cihazlarınızda uygulamanızda hata ayıklamaktır. Bazen ExternalAccessory destekli uygulamalar geliştirmek için kablonun takılmasını/çıkarılma durumunu test etmek için USB cihazı gerekebilir. Bu gibi durumlarda, kablosuz ağ üzerinden hata ayıklamayı kullanabilirsiniz.

Kablosuz Dağıtım ve Hata Ayıklama hakkında daha fazla bilgi için Kablosuz Dağıtım kılavuzuna bakın.

Teknik Ayrıntılar

Xamarin.iOS, yeni Mono geçici hata ayıklayıcısını kullanır. Ayrı bir işlemi denetlemek için işletim sistemi arabirimlerini kullanarak ayrı bir işlemi denetleyen bir program olan standart Mono hata ayıklayıcıdan farklı olarak, mono çalışma zamanının hata ayıklama işlevini bir kablo protokolü aracılığıyla kullanıma sunmasını sağlayarak yumuşak hata ayıklayıcı çalışır.

Başlangıçta, hata ayıklanacak bir uygulama hata ayıklayıcıyla iletişim kurar ve hata ayıklayıcı çalışmaya başlar. Visual Studio için Xamarin.iOS'ta, Xamarin Mac Aracısı uygulama (Visual Studio'da) ile hata ayıklayıcı arasında orta adam olarak görev yapar.

Bu geçici hata ayıklayıcı, cihazda çalışırken işbirliğine dayalı bir hata ayıklama düzeni gerektirir. Bu, hata ayıklama sırasında ikili derlemelerinizin daha büyük olacağı anlamına gelir. Kod, hata ayıklamayı desteklemek için her dizi noktasında ek kod içerecek şekilde izlenir.

Konsola Erişme

Kilitlenme günlükleri ve Konsol sınıfının çıkışı i Telefon konsoluna gönderilir. Bu konsola Xcode ile "Düzenleyici"yi kullanarak ve cihazınızı düzenleyiciden seçerek erişebilirsiniz.

Alternatif olarak, Xcode'ı başlatmak istemiyorsanız konsola doğrudan erişmek için Apple'ın i Telefon Yapılandırma Yardımcı Programı'nı kullanabilirsiniz. Bu, alanda hata ayıklarken bir Windows makinesinden konsol günlüklerine erişebileceğiniz ek bonusu içerir.

Visual Studio kullanıcıları için Çıkış penceresinde birkaç günlük vardır, ancak daha kapsamlı ve ayrıntılı günlükler için Mac'inize geçmeniz gerekir.


Mono'nun Sınıf Kitaplıklarında Hata Ayıklama

Xamarin.iOS, Mono'nun sınıf kitaplıkları için kaynak koduyla birlikte gönderilir ve işlerin arka planda nasıl çalıştığını görmek için bunu hata ayıklayıcıdan tek adıma kadar kullanabilirsiniz.

Bu özellik hata ayıklama sırasında daha fazla bellek kullandığından, bu varsayılan olarak kapalıdır.

Bu özelliği etkinleştirmek için, aşağıda gösterildiği gibi Mac için Visual Studio Tercihleri Hata Ayıklayıcısı menüsünün altında Yalnızca proje kodunda hata ayıkla; çerçeve koduna adım atmayın seçeneğinin > seçili olmadığından emin olun:>

Debugging Mono's Class Libraries

Bunu yaptıktan sonra uygulamanızı başlatabilir ve Mono'nun temel sınıf kitaplıklarından herhangi birine tek adım atabilirsiniz.