Android Studio, aşağıdakileri ve diğer işlemleri yapmanıza olanak tanıyan bir hata ayıklayıcı sağlar:
- Uygulamanızda hata ayıklama yapacağınız cihazı seçin.
- Java, Kotlin ve C/C++ kodunuzda ayrılma noktaları belirleyin.
- Değişkenleri inceleyin ve çalışma zamanında ifadeleri değerlendirin.
Bu sayfa, temel hata ayıklayıcı işlemleriyle ilgili talimatlar içerir. Daha fazla belge için ayrıca IntelliJ IDEA hata ayıklama dokümanlarına bakın.
Hata ayıklamayı etkinleştir
Hata ayıklama işlemine başlamadan önce aşağıdakileri yapın:
- Cihazınızda hata ayıklamayı etkinleştirin.
- Emülatör kullanıyorsanız hata ayıklama varsayılan olarak etkindir. Ancak bağlı bir cihaz için cihaz geliştirici seçeneklerinde hata ayıklamayı etkinleştirmeniz gerekir.
- Hata ayıklaması yapılabilir bir derleme varyantı çalıştırın.
Derleme yapılandırmasında
debuggable true
(Kotlin komut dosyalarındaisDebuggable = true
) içeren bir derleme varyantı kullanın.Genelde, "hata ayıklama" işlemini yapmak için varsayılan her Android Studio'da bulunan bir varyant
build.gradle
dosyasında görünür olmasa da projesidir. Ancak, hata ayıklaması gereken yeni derleme türlerini tanımlarsanızdebuggable true
eklemeniz gerekir ekleyin:- Uygulamanızın kodunda ayırma noktaları ayarlayın.
- Araç çubuğunda, hedef cihaz menüsünden uygulamanızın hatalarını ayıklamak için bir cihaz seçin.
Yapılandırılmış bir cihazınız yoksa USB ile bir cihaz bağlama, kablosuz ağ üzerinden bir cihaz bağlayın veya Android Emülatör.
- Araç çubuğundaki Hata ayıkla simgesini tıklayın.
Uygulamanız cihazda zaten çalışıyorsa bu işlemi isteyip istemediğinizi soran bir iletişim kutusu Çalıştır'dan Hata Ayıklama'ya geçin. Hata ayıklamaya başlanması için cihazın yeniden başlatılması gerekir. Uygulamanın aynı örneğinin çalışmaya devam etmesini sağlamak için Hata Ayıklama'yı İptal Et'i tıklayın ve bunun yerine hata ayıklayıcıyı çalışan bir uygulamaya bağlayın. Aksi takdirde Android Studio bir APK oluşturur, bu APK'yı hata ayıklama anahtarıyla imzalar, seçtiğiniz cihaza yükler ve çalıştırır.
Şu durumda: projenize C ve C++ kodunu ekleyin, Android Studio, Hata Ayıklama aracında LLDB hata ayıklayıcı'yı da çalıştırır penceresini açın.
- Hata ayıklama penceresi açılmıyorsa Görünüm > Araç Pencereleri > Hata Ayıklama'yı seçin veya araç penceresi çubuğunda Hata Ayıklama'yı tıklayın.
- Android işlemine hata ayıklayıcı ekle'yi tıklayın.
- Select Process (İşlem Seçin) iletişim kutusunda, yapmak istediğiniz işlemi seçin
hata ayıklayıcıyı şuraya ekleyin:
- Emülatör veya köklü cihaz kullanıyorsanız tüm işlemleri görmek için Tüm işlemleri göster'i işaretleyebilirsiniz. Köklenmiş bir cihazda bu, cihazda çalışan tüm işlemleri gösterir. Ancak rootlanmamış bir cihazda bu işlem yalnızca bir süreçtir.
- Android Hata Ayıklayıcı Ayarlarını Kullan menüsünden, Search Ads 360'ta bulunan mevcut bir çalıştırma/hata ayıklama yapılandırması ile ilgili daha fazla bilgi edinin. C ve C++ kodunda, bu, LLDB başlangıç komutlarını, LLDB ekleme sonrası komutlarını ve dizinleri kullanır.
- Mevcut bir çalıştırma/hata ayıklamanız yoksa Yeni Oluştur'u seçin. Bu seçim, Hata Ayıklama Türü'nü etkinleştirir. farklı bir hata ayıklama türü seçebileceğiniz menüsü. Ölçüt Varsayılan olarak, Android Studio en iyi hata ayıklama türünü seçmek için "Otomatik Olarak Hata Ayıklama" türünü kullanır projenizin Java veya C/C++ kodu içerip içermediğine bağlı olarak sizin için hata ayıklayıcı seçeneği
- Tamam'ı tıklayın.
Hata Ayıklama penceresi görüntülenir.
- Yürütme ve gezinme araç çubuğu Bkz. Ayrılma noktalarıyla çalışma
- Mesaj dizisi seçici
- Değerlendirme ve izleme ifadesi girişi. Değişkenleri inceleme bölümüne bakın.
- Yığın ekranı
- Değişkenler bölmesi. Değişkenleri inceleme başlıklı makaleyi inceleyin.
- Otomatik Olarak Algıla
- Android Studio'nun otomatik olarak en iyi seçeneği belirlemesini istiyorsanız bu hata ayıklama türünü seçin girin. Örneğin, projenizde C veya C++ kodunuz varsa Android Studio otomatik olarak Çift hata ayıklama türünü kullanır. Aksi takdirde Android Studio, yalnızca Java hata ayıklama türünü kullanır.
- Yalnızca Java
- Yalnızca Java veya Kotlin ile yazılmış kodda hata ayıklama yapmak istiyorsanız bu hata ayıklama türünü seçin. Yalnızca Java hata ayıklayıcı, yerel kodunuzda ayarladığınız kesme noktalarını veya saatleri yoksayar.
- Yalnızca Yerel (yalnızca C/C++ kodunda kullanılabilir)
-
Kodunuzdaki hataları ayıklamak için yalnızca LLDB'yi kullanmak istiyorsanız bu hata ayıklama türünü seçin. Bunu kullanırken
Java hata ayıklayıcı oturum görünümü kullanılamıyor. Varsayılan olarak
LLDB yalnızca yerel kodunuzu inceler ve Java'nızdaki ayrılma noktalarını yoksayar
girin. Java kodunuzda da hata ayıklama yapmak istiyorsanız Otomatik Olarak Algıla veya Çift Hata Ayıklama türüne geçin.
Yerel hata ayıklama, yalnızca aşağıdaki gereksinimleri karşılayan cihazlarda çalışır:
Cihaz,
run-as
özelliğini destekliyor.Cihazın
run-as
hizmetini destekleyip desteklemediğini kontrol etmek için şu komutu şurada çalıştırın: cihazınıza bağlı ADB kabuğu:run-as your-package-name pwd
your-package-name
kısmını uygulamanızın paket adıyla değiştirin. Öğerun-as
destekliyorsa komut hata olmadan döndürecektir.Cihazda
ptrace
etkin.ptrace
hizmetinin etkin olup olmadığını kontrol etmek için ADB'de aşağıdaki komutu çalıştırın kabuk seçin:sysctl kernel.yama.ptrace_scope
ptrace
etkinleştirilirse komut,0
değerini veyaunknown key
hatası.ptrace
etkinleştirilmezse0
dışında bir değer yazdırılır.
- Çift (Java + Yerel) - yalnızca C/C++ koduyla kullanılabilir
-
Hem Java hem de yerel kodda hata ayıklama arasında geçiş yapmak istiyorsanız bu hata ayıklama türünü seçin.
Android Studio, uygulamanıza hem Java hata ayıklayıcısını hem de LLDB'yi ekler
Böylece her bir Sprint’te
uygulamanızı yeniden başlatmadan hem Java hem de yerel kodunuzdaki ayrılma noktaları
veya hata ayıklama yapılandırmanızı değiştirebilirsiniz.
Şekil 2'de, Hata ayıklama pencere başlığının sağındaki iki sekmeye dikkat edin. Uygulamada hem Java hem de C++ kodu bulunduğundan bir sekmede yerel kodu ile diğeri de Java kodunda hata ayıklama için kullanılır (-Java ile belirtildiği gibi).
- Çizgi ayrılma noktası
- En yaygın tür, uygulamanızın belirli bir zamanda yürütülmesini duraklatan bir çizgi ayrılma noktasıdır girin. Duraklatılmış durumdayken değişkenleri inceleyebilir, ifadeleri değerlendirebilir ve ardından işleme devam edebilirsiniz. belirlemek için her satıra bir kod yazın.
- Yöntem ayrılma noktası
- Yöntem kesme noktası, uygulamanız belirli bir yönteme girdiğinde veya bu yöntemden çıktığında uygulamanızın yürütülmesini duraklatır. Duraklatılmış durumdayken değişkenleri inceleyebilir, ifadeleri değerlendirebilir ve ardından işleme devam edebilirsiniz. belirlemek için her satıra bir kod yazın. Bir grafikte hata ayıklayıcı, composable işlevinin composable'a uymasını sağlamak için composable'ın parametrelerini ve yeniden bestelemeye hangi değişikliklerin sebep olmuş olabileceğini belirleyebilirsiniz.
- Alan ayrılma noktası
- Alan ayrılma noktası, uygulamanız bir kullanabilirsiniz.
- İstisna kesme noktası
- İstisna ayrılma noktası, bir istisna gerçekleştiğinde uygulamanızın yürütülmesini duraklatır.
- Yürütmeyi duraklatmak istediğiniz kod satırını bulun.
- İlgili kod satırındaki sol oluğu tıklayın veya imleci satıra yerleştirin ve Control+F8 tuşlarına basın (macOS'te, Command+F8).
- Uygulamanız zaten çalışıyorsa Android işlemine hata ayıklayıcı ekle'yi tıklayın. . Aksi takdirde, hata ayıklamaya başlamak için Hata ayıkla'yı tıklayın. .
-
Bir değişken için nesne ağacını incelemek için onu Değişkenler görünümünde genişletin. Değişkenler görünümü görünmüyorsa Düzen Ayarları'nı tıklayın ve değişkenler seçeneğinin işaretli olduğundan emin olun.
-
Bir yöntem girmeden koddaki bir sonraki satıra geçmek için Atla'yı tıklayın.
-
Bir yöntem çağrısının içindeki ilk satıra geçmek için Adım ile
-
Mevcut yöntemin dışında bir sonraki satıra geçmek için Adım Çıkış .
-
Uygulamayı normal şekilde çalıştırmaya devam etmek için Programı Devam Ettir'i tıklayın .
- Android Studio,
<your-module> sekmesi
ayrılma noktası ekleyin. Çerçeveler, Değişkenler ve İzleyiciler bölmeleri de kullanılabilir ve Java kodunda hata ayıklama işlemi yapıyormuşsunuz gibi çalışır.
İleti dizileri bölmesi kullanılamıyor olsa da Uygulama işlemlerinize erişmek için "LLDB oturum" görünümünde listesine eklemeniz gerekir. Bunlar hakkında daha fazla bilgi hata ayıklama penceresi çerçeveleri ve değişkenleri inceleyebilir.
Not: Android sistemi, yerel kodunuzdaki bir kesme noktasını incelerken uygulamanızın Java ikili programını çalıştıran sanal makineyi askıya alır. Bu, doğal kodunuzdaki bir kesme noktasını incelerken Java hata ayıklayıcıyla etkileşime geçemeyeceğiniz veya Java hata ayıklayıcı oturumunuzda herhangi bir durum bilgisi alamayacağınız anlamına gelir.
- Android Studio, Java hata ayıklayıcısı olduğunda <your-module>-Java sekmesi kodda bir ayrılma noktası ile karşılaştığından emin olmanız gerekir.
- LLDB ile hata ayıklarken şu sayfadaki LLDB terminalini kullanabilirsiniz: Komut satırı seçeneklerini LLDB'ye iletmek için LLDB oturum görünümü. Uygulamanızda hata ayıklama işlemine her başladığınızda LLDB'nin yürütmesini istediğiniz belirli komutlar varsa hata ayıklayıcı uygulama işleminize bağlanmadan hemen önce veya hemen sonra bu komutları hata ayıklama yapılandırmanıza ekleyebilirsiniz.
- İzlenecek veya gösterilecek ifadeyi girin
- İfadeyi bir kez değerlendirmek için İzleme listesine ekle'yi tıklayın veya Enter tuşuna basın.
- Hedeflediğiniz fiziksel cihaz veya emülatörde x86 ya da x86_64 CPU kullanılıyor. Eğer
bir ARM CPU kullanıyorsa bu modellerin sınırını
değişkeninin bellekteki adresini 4 bayt olarak (32 bit işlemciler için) veya 8 bayt olacak şekilde
64 bit işlemciler için kullanılır. Yerel kodunuzda bir değişkeni hizalamak için değişken yavaşlatma bölümünde aşağıdaki gibi
__attribute__((aligned(num_bytes)))
belirtin:// For a 64-bit ARM processor int my_counter __attribute__((aligned(8)));
- Daha önce üç veya daha az izleme noktası atadınız. Yalnızca Android Studio x86 veya x86_64 hedef cihazlarda dört adede kadar izleme noktasını destekler. Diğer cihazlar daha az izleme noktasını destekleyebilir.
- Uygulamanız bir ayrılma noktasında askıya alınmış durumdayken LLDB oturum görünümünüzdeki Değişkenler bölmesi.
-
İzlemek istediğiniz bellek bloğunu kaplayan bir değişkeni sağ tıklayıp İzleme noktası ekle'yi seçin.
Şekil 9'da gösterildiği gibi, izleme noktanızı yapılandırmak için bir iletişim kutusu görüntülenir.
İzleme noktanızı aşağıdaki seçeneklerle yapılandırın:
- Etkin: Bilgilendirmek istiyorsanız bu seçeneğin işaretini kaldırın. Android Studio, siz ayarı değiştirene kadar izleme noktasını yoksayar. Android Studio, daha sonra erişebilmeniz için izleme noktanızı kaydeder.
- Askıya alma: Varsayılan olarak Android sistemi uygulamanızı askıya alır. bir bellek blokuna eriştiğinde bunu işleme alabilir. Bu davranışı istemiyorsanız bu seçeneğin işaretini kaldırın. Bu sayfada, sistem izleme noktanızla etkileşime geçtiğinde davranışı özelleştirmek için kullanabileceğiniz ek seçenekler gösterilir: İletiyi konsola kaydet ve İlgili öğeye dokunulduğunda kaldır.
- Erişim Türü: Uygulamanızın Okuma veya Yazma işlemlerini yapmaya çalıştığında izleme noktasını belleğin değişkene göre ayrılmasını sağlar. İzleme noktanızı okuma veya yazma işleminde tetiklemek için Herhangi biri'ni seçin.
- Bitti'yi tıklayın.
- Değişkenler listesinde, kaynak satırında herhangi bir yeri sağ tıklayarak liste dışı bırakmalısınız.
- Listeden Şöyle göster'i ve kullanmak istediğiniz biçimi seçin.
Kullanılabilir biçimler, seçtiğiniz kaynağın veri türüne bağlıdır. Aşağıdaki seçeneklerden birini veya daha fazlasını görebilirsiniz:
- Sınıf: Sınıf tanımını görüntüleyin.
- toString: Görüntüleme dizesi biçimini gösterir.
- Nesne: Nesne (sınıfın bir örneği) tanımını görüntüleyin.
- Dizi: Dizi biçiminde görüntülenir.
- Zaman damgası: Tarihi ve saati şu şekilde görüntüleyin: yyyy-aa-gg ss:dd:ss.
- Otomatik: Android Studio, veri türüne göre en iyi biçimi seçer.
- İkili: Sıfırları ve birleri kullanarak ikili değeri görüntüleyin.
- MeasureSpec: Üst öğeden seçili alt öğeye aktarılan değerdir.
MeasureSpec
başlıklı makaleyi inceleyin. - On altılık: On altılık değer olarak görüntülenir.
- Primitif: Temel veri türünü kullanarak sayısal bir değer olarak görüntüleyin.
- Tam sayı: Türün sayısal değeri olarak görüntülenir.
Integer
.
- Kaynak değerini sağ tıklayın.
- Şu kullanıcı olarak görüntüle'yi seçin.
- Oluştur'u seçin.
- Java Veri Türü Oluşturucular iletişim kutusu görüntülenir. Şu adresteki talimatları uygulayın: Java Veri türü oluşturucuları.
Eski
android { buildTypes { customDebugType { debuggable true ... } } }
Kotlin
android { buildTypes { create("customDebugType") { isDebuggable = true ... } } }
Bu özellik, C/C++ kodlu modüller için de geçerlidir.
Not:
jniDebuggable
mülkü artık kullanılmıyor.
Uygulamanız, hata ayıklama yapmak istediğiniz bir kitaplık modülüne bağlıysa bu kitaplık, hata ayıklama simgelerini koruması için debuggable true
ile birlikte paketlenmelidir.
Uygulama projenizin hata ayıklaması yapılabilir varyantlarının
kitaplık modülü kullanıyorsanız kitaplığınızın varsayılan olmayan sürümlerini yayınlayabilirsiniz.
Hata ayıklamayı başlat
Aşağıdaki şekilde bir hata ayıklama oturumu başlatabilirsiniz:
Hata ayıklayıcıyı çalışan bir uygulamaya ekleme
Uygulamanız halihazırda cihazınızda çalışıyorsa hata ayıklamaya uygulamanızı aşağıdaki şekilde yeniden başlatın:
Cihaz Gezgini'ndeki İşlemler sekmesi (Görünüm > Araç Penceresi > Cihaz Gezgini) hata ayıklaması yapılabilecek işlemlerin bir listesini içerir. Buradan bir işlem seçip son , zorla durdurmak , veya hata ayıklayıcıyı belirli bir işleme ekleyin .
Hata ayıklama penceresi
Hata ayıklama penceresi şu bölümlere ayrılır:
Not: Android Studio hata ayıklayıcı ve çöp toplayıcısı
bir şekilde entegredir. Android sanal makinesi, tüm nesnelerin
ve hata ayıklayıcı, bu hata ayıklayıcıya ulaşana kadar çöplerin toplanmadığını bilir.
bağlantı kesilir. Bu durum, hata ayıklayıcı bağlıyken nesnelerin birikmesine neden olabilir. Örneğin, hata ayıklayıcı çalışan bir iş parçacığı görürse
ilişkilendirilmiş Thread
nesne, iş parçacığı sona ermiş olsa bile hata ayıklayıcı bağlantısı kesilene kadar atık toplanmaz.
Hata ayıklayıcı türünü değiştirme
Java/Kotlin kodu ile C/C++ kodundaki hataları ayıklamak için farklı hata ayıklayıcı araçları gerektiğinden, Android Studio hata ayıklayıcı, kullanılacak hata ayıklayıcı türünü seçmenize olanak tanır. Android Studio, varsayılan olarak Otomatik Olarak Algıla hata ayıklayıcı türünü kullanarak projenizde algıladığı dillere göre hangi hata ayıklayıcının kullanılacağına karar verir.
Hata ayıklama yapılandırmasında hata ayıklayıcıyı manuel olarak seçmek için Çalıştır > Düzenle Yapılandırmalar. Hata ayıklayıcıyı, yeni bir hata ayıklayıcıyı kapattığınızda görünen iletişim kutusundan da seçebilirsiniz. Çalıştır > Hata ayıklayıcıyı Android işlemine ekleyin.
Kullanılabilir hata ayıklama türleri şunlardır:
Not: Search Ads 360 tarafından optimize edilen yerel kodda hata ayıklarken
derleyici için şu uyarı mesajını alabilirsiniz:This function was
compiled with optimizations enabled. Some debugger features may not be
available
. Optimizasyon işaretleri kullanıldığında derleyici, derlenmiş kodunuzda daha verimli çalışması için değişiklikler yapar. Bu durum hata ayıklayıcının
zor olduğundan, beklenmedik veya yanlış bilgileri
hata ayıklayıcıyı kullanın.
Bu nedenle, hata ayıklama sırasında derleyici optimizasyonlarını devre dışı bırakmanız gerekir
yerel kodunuzdur.
Sistem günlüğünü kullanma
Sistem günlüğü, uygulamanızda hata ayıklamaya çalışırken sistem mesajlarını gösterir. Bu mesajlar, cihazda çalışan uygulamalardan alınan bilgileri içerir. Bir web sitesini ziyaret etmek için uygulamanızın hatalarını ayıklamak için sistem günlüğünü kullanın, kodunuzun günlük mesajlarını yazdığından ve yığını yazdırdığından emin olun istisnaları takip etmek için kullanın.
Kodunuza günlük mesajları yazma
Kodunuzda günlük mesajları yazmak için
Log
sınıfını kullanın. Günlük mesajları yardımı
çalışırken sistem hata ayıklama çıktısını toplayarak
yürütme akışını anlamanızı sağlar.
uygulamanızla etkileşime girmeniz gerekir. Günlük iletileri ayrıca, günlük iletilerinizin
uygulama başarısız oldu. Günlük kaydı hakkında daha fazla bilgi edinmek için bkz.
Logcat ile günlük yazma ve görüntüleme
Aşağıdaki örnekte, önceki durumun geçerli olup olmadığını belirlemek için günlük mesajlarını nasıl ekleyebileceğinizi gösteren etkinliğiniz başladığında bilgileri kullanılabilir:
Kotlin
import android.util.Log ... class MyActivity : Activity() { ... override fun onCreate(savedInstanceState: Bundle?) { ... if (savedInstanceState != null) { Log.d(TAG, "onCreate() Restoring previous state") /* restore state */ } else { Log.d(TAG, "onCreate() No saved state available") /* initialize app */ } ... } ... companion object { private val TAG: String = MyActivity::class.java.simpleName ... } }
Java
import android.util.Log; ... public class MyActivity extends Activity { private static final String TAG = MyActivity.class.getSimpleName(); ... @Override public void onCreate(Bundle savedInstanceState) { ... if (savedInstanceState != null) { Log.d(TAG, "onCreate() Restoring previous state"); /* restore state */ } else { Log.d(TAG, "onCreate() No saved state available"); /* initialize app */ } ... } }
Geliştirme sırasında kodunuz istisnaları yakalayabilir ve yığın izlemeyi (stack trace) sisteme yazabilir günlük:
Kotlin
fun someOtherMethod() { try { ... } catch (e : SomeException) { Log.d(TAG, "someOtherMethod()", e) } }
Java
void someOtherMethod() { try { ... } catch (SomeException e) { Log.d(TAG, "someOtherMethod()", e); } }
Not: Hata ayıklama günlük mesajlarını ve yığın izleme yazdırma çağrılarını
kodunuzu uygulamanız gerekir. Bunun için bir DEBUG
ayarlayın
hata ayıklama günlük mesajlarını işaretleyip koşullu ifadelerin içine yerleştirin.
Sistem günlüğünü görüntüle
Şekil 4'te gösterildiği gibi, Logcat penceresinde hata ayıklama ve diğer sistem mesajlarını görüntüleyebilir ve filtreleyebilirsiniz. Örneğin, atık toplama gerçekleştiğinde veya
uygulamanıza eklediğiniz
Log
sınıfı.
Logcat'i kullanmak için hata ayıklamaya başlayın ve Logcat sekmesini seçin.
Logcat ve filtreleme seçeneklerinin açıklaması için Logcat ile günlük yazma ve görüntüleme başlıklı makaleyi inceleyin.
Kesme noktalarıyla çalışma
Android Studio, farklı hata ayıklama işlemlerini tetikler. Birkaç tür ayrılma noktası vardır:
Yalnızca belirli koşullarda yürütmeyi askıya alacak koşullu ayrılma noktaları ayarlayabilirsiniz karşılanıyor. Ayrıca askıya almadan Logcat'e yazan günlük ayrılma noktaları da ayarlayabilirsiniz. çok önemlidir. Bu, kodunuzun günlük ifadeleriyle dolmasını önlemeye yardımcı olabilir.
Satır kesme noktası eklemek için aşağıdaki adımları uygulayın:
Şekil 5'te gösterildiği gibi, bir kesme noktası belirlediğinizde çizginin yanında kırmızı bir nokta görünür.
Kod yürütmeniz kesme noktasına ulaştığında Android Studio, uygulamanızın yürütmesini duraklatır.
Uygulamanın durumunu belirlemek için: şu araçları kullanın:
Projenizde yerel kod kullanılıyorsa varsayılan olarak "Otomatik Olarak Algıla" hata ayıklama türü hem Java hata ayıklayıcısını hem de LLDB'yi uygulamanıza iki ayrı daha fazla bilgi edineceksiniz. Uygulamanızı yeniden başlatmadan veya ayarları değiştirmeden Java ve C/C++ durma noktalarını inceleme arasında geçiş yapabilirsiniz.
Not: Android Studio'nun C veya C++ kodunuzdaki ayrılma noktalarını algılaması için Otomatik Olarak Algıla, Yerel veya Çift. Hata ayıklama yapılandırmanızı düzenleyerek Android Studio'nun kullandığı hata ayıklama türünü değiştirebilirsiniz. Alıcı: Farklı hata ayıklama türleri hakkında daha fazla bilgi edinmek için Diğer hata ayıklama türlerine tabidir.
Android Studio, uygulamanızı hedef cihazınıza dağıttığında Hata Ayıklama penceresi, Şekil 6'da gösterildiği gibi her hata ayıklayıcı işlemi için bir sekme veya hata ayıklama oturumu görünümüyle açılır.
C/C++ kodunda hata ayıklama yaparken, uygulamanız belirli bir bellek bloğuyla etkileşime geçtiğinde uygulama işleminizi askıya alabilecek gözlem noktaları adı verilen özel türde kesme noktaları da ayarlayabilirsiniz. Daha fazla bilgi edinmek için izleme noktası ekleme ile ilgili bölüme bakın.
Kesme noktalarını görüntüleme ve yapılandırma
Tüm ayrılma noktalarını görüntülemek ve kesme noktası ayarlarını yapılandırmak için Ayrılma noktalarını göster Hata ayıklama penceresi. Şekil 7'de gösterildiği gibi, Kesme noktaları penceresi görüntülenir.
Kesme noktaları penceresi, liste halinde görebilirsiniz. Bir ayrılma noktası devre dışı bırakılırsa Android Studio o ayrılma noktasına ulaştığında uygulamanızı duraklatabilirsiniz.
Ayarlarını yapılandırmak için listeden bir kesme noktası seçin. Devre dışı bırakılacak bir ayrılma noktası yapılandırabilirsiniz ve farklı bir ayrılma noktası isabet etmesinden sonra sistemin bunu etkinleştirmesini sağlayın. Ayrıca bir kesme noktasının, isabet. Herhangi bir istisna için ayrılma noktası ayarlamak üzere İstisna Kesme noktaları listesindeki ayrılma noktaları'nı tıklayın.
Tüm kesme noktalarını geçici olarak devre dışı bırakmak için Hata Ayıklama penceresinde Kesme noktalarını devre dışı bırak'ı tıklayın. Tekrar tıklayarak yeniden etkinleştirin.
Pencere çerçevelerini hata ayıklama
Hata Ayıklayıcı penceresinde Çerçeveler bölmesi, geçerli ayrılma noktasının isabetine neden olan yığın çerçevesidir. Bu durumda, yığın çerçevesinde gezinmenizi ve incelemenize ve ayrıca ileti dizileri.
İleti dizisi seçmek için ileti dizisi seçiciyi kullanın tıklayın ve yığın çerçevesini görüntüleyin. Kaynağı düzenleyicide açmak için çerçevedeki öğeleri tıklayın. Ayrıca ileti dizisini özelleştirip Çerçeveler kılavuzunu inceleyin.
Değişkenleri inceleme
Hata Ayıklayıcı penceresindeki Değişkenler bölmesi, Sistem, uygulamanızı bir kesme noktasında durdurduğunda ve Çerçeveler bölmesinden bir kare seçin. Değişkenler bölmesi de anlık ifadeleri statik yöntemler ve/veya değişkenin kullanılabilir olduğunu varsayalım.
Nesne ağacına ifade eklemek için (uygulamadaki hata ayıklaması sırasında):
Alternatif olarak, nesne ağacı izlemek istediğiniz ifadeyi içeriyorsa "İzlenen ifade" olarak eklemek için ağacın en üstüne koyun.
İzlenen ifadeler, kesme noktalarına ulaşıldığında veya kodunuzda adım atıldığında güncellenir.
Değerlendirilen ifadeler siz manuel olarak oluşturulana kadar nesne ağacının en üstünde başka bir ifadeyi değerlendirin veya kodunuzda adım adım ilerleyin.
İzlenen bir ifadeyi nesne ağacından kaldırmak için ifadeyi sağ tıklayın, ardından Saati Kaldır'ı tıklayın.
İzleme noktaları ekle
C/C++ kodunda hata ayıklama yaparken, uygulamanız belirli bir bellek bloğuyla etkileşime geçtiğinde uygulama işleminizi askıya alabilecek gözlem noktaları adı verilen özel türde kesme noktaları ayarlayabilirsiniz. Örneğin, bir bellek bloğuna iki işaretçi ayarlar ve bu işaretçiye bir izleme noktası atarsanız bu bellek bloğuna erişmek için bu işaretçilerden herhangi birini kullandığınızda izleme noktası tetiklenir.
Android Studio'da şu seçeneği belirleyerek çalışma zamanı sırasında bir izleme noktası oluşturabilirsiniz: belirli bir değişken vardır, ancak LLDB izleme noktasını yalnızca değişkenin kendisine değil, söz konusu değişkene ayırdığı belleğe dikkat edin. Bu, İzlemeler bölmesine değişken eklemekten farklıdır. İzlemeler bölmesine eklediğiniz değişkenin değerini gözlemleyebilirsiniz ancak sistem, bellekte değişkenin değerini okuduğunda veya değiştirdiğinde uygulamanızın işlemini askıya alamazsınız.
Not: Uygulama işleminiz bir işlevden ve sistemden çıktığında yerel değişkenlerini bellekten ayırıyorsa, varsa kalan tüm değişkenleri izleme noktalarını içerebilir.
İzleme noktası ayarlamak için aşağıdaki koşulları karşılamanız gerekir:
Not: 32 bit ARM ABI'leri ile uygulamanızda hata ayıklarken, izleme noktası eklerken veya fareyle üzerine geldiğinizde değişkenlerin üzerinde çalışır. bir kilitlenmeye neden olabilir. Geçici bir çözüm olarak 64 bit ARM kullanarak hata ayıklayın: x86 veya x86_64 ikili programları. Bu sorun, Android Studio'nun yeni sürümünde düzeltilecektir.
Şartları karşılıyorsanız aşağıdaki şekilde izleme noktası ekleyebilirsiniz:
Tüm izleme noktalarınızı görüntülemek ve izleme noktası ayarlarını yapılandırmak için Hata Ayıklama penceresinde İzleme noktalarını görüntüle'yi tıklayın. İlgili içeriği oluşturmak için kullanılan Kesme noktaları iletişim kutusu Şekil 10'da gösterildiği gibi görünür.
İzleme noktasını ekledikten sonra Programı Devam Ettir'i tıklayın. uygulamanızı devam ettirmek için Hata Ayıklama penceresinde bahsedeceğim. Uygulamanız, önceden gördüğünüz bir bellek blokuna erişmeye bir izleme noktası ayarladıysanız, Android sistemi uygulama işleminizi askıya alır uygulamanızın indirdiği kod satırının yanında izleme noktası simgesi görünür son olarak yürütülür.
Kaynak değeri görüntüleme biçimini görüntüleme ve değiştirme
Hata ayıklama modunda kaynak değerlerini görüntüleyebilir ve değişkenlerini kullanarak oluşturma işlemini manuel olarak yapabilirsiniz. Değişkenler sekmesi görüntülenirken ve bir çerçeve seçiliyken aşağıdakileri yapın:
Özel biçim oluşturmak için aşağıdakileri yapın: