Platform için Android Studio (ASfP), Hata Ayıklama araç penceresindeki Ekle sekmesi etrafında çok dilli platform hata ayıklaması entegre eder:
- Java hata ayıklayıcı, Native hata ayıklayıcı (paketlenmiş LLDB) veya her ikisini de fiziksel bir cihazdaki ya da Cuttlefish sanal cihazındaki çalışan herhangi bir uygulamaya veya sistem işlemine eklemek için Run > Attach to Android Process'i (Çalıştır > Android İşlemine Ekle) (Control+Alt+A) seçin.
- Yüklenen her paylaşılan kitaplığı (
.so) ve Kitaplıklar panelindeki sekiz karakterlik ELF Build ID'sini eklemeden önce inceleyin. Eşleşen yerel hata ayıklama sembollerini doğrulayan onay işareti simgeleriout/target/product/<device>/symbolsaltında gösterilir. - Cihaz ön koşullarını araç çubuğundan yönetin: Sistem işlemlerini göster ile filtreleyin,
adb root'yi çalıştırmak için Root Cihaz'ı (etkin olduğunda Cihaz root edilmiş olarak gösterilir) veuserdebugderlemelerinde JDWP'yi etkinleştirmek için JDWP'yi etkinleştir'i tıklayın. - Koşullu ve istisna kesme noktaları ayarlayın, satır içi değişken değerlerini düzenleyicide görüntüleyin, Drop Frame ve akıllı Step Into'yu kullanın ve yapılandırılmış C++ ve Rust türlerini çalışma zamanında inceleyin.
Hata ayıklayıcıyı kullanmadan önce lunch hedefinizde yerel
out/target/product/<device>/symbols/.build-id sembol dizininin bulunduğundan emin olun ve eşleşen bir cihaz görüntüsünü flaşlayın veya başlatın.
Java ve hem Java hem de yerel hata ayıklama
Java veya Kotlin uygulamasında, sistem uygulamasında (ör. com.android.messaging, Ayarlar veya SystemUI) ya da JNI ve C++ veya Rust kodunu çağıran bir süreçte hata ayıklamak için aşağıdaki adımları tamamlayın:
- Java, Kotlin, C, C++ veya Rust kaynak dosyalarınızda kesme noktaları ayarlayın.
- Run > Attach to Android Process'i (Çalıştır > Android İşlemine Ekle) (Control+Alt+A) seçin. ASfP, Hata Ayıklama araç penceresinde sabitlenmiş bir Ekle sekmesi açar.
- Cihaz açılır menüsünden hedef cihazınızı seçin. JDWP,
userdebugderlemesinde etkinleştirilmemişse Enable JDWP'yi (JDWP'yi Etkinleştir) tıklayın. ASfP,persist.debug.dalvik.vm.jdwp.enabled=1değerini ayarlar ve cihazı yeniden başlatır. Etkin olduğunda düğmede JDWP etkin ifadesi ve sağ tıklama ile JDWP'yi devre dışı bırak işlemi gösterilir. - Tablodan hedef süreci seçin (Java ve ART süreçlerinde kahve fincanı simgesi gösterilir).
- Attach (Ekle) sekmesinin alt kısmında Java debugger (Java hata ayıklayıcısı), Native
debugger (Yerel hata ayıklayıcı) veya her ikisini de seçin. İkisini de seçtiğinizde Debug (Hata Ayıklama) araç penceresinde iki bağlı sekme açılır: yerleşik LLDB için
<process> (<pid>)ve Java için<process> (<pid>)-jdwp. Yaşam döngüleri birbirine bağlıdır. Bu nedenle, oturumlardan birini durdurduğunuzda her ikisi de durdurulur. - Ekle'yi tıklayın ve kesme noktalarınıza ulaşmak için cihazınızdaki uygulamayla etkileşim kurun.

Sistem süreci (C ve C++) hata ayıklama ve sembol doğrulama
Sistem daemon'larını, HAL'leri veya sistem hizmetlerini (ör. android.hardware.bluetooth-service.cuttlefish, surfaceflinger ya da audioserver) hata ayıklamak için aşağıdaki adımları tamamlayın:
- Run > Attach to Android Process'i (Çalıştır > Android İşlemine Ekle) (Control+Alt+A) açın. Araç çubuğunda root erişimli cihaz gösteriliyorsa ASfP'nin
adb rootçalıştırıp Cihaz root erişimli mesajını göstermesi için bu seçeneği tıklayın. - Üst araç çubuğunda Sistem işlemlerini göster'i seçin ve hedef işleminizi filtreleyin.
- Kitaplıklar panelinde yerel hata ayıklama sembollerini doğrulama: Bir işlem seçildiğinde Kitaplıklar tablosu, işlemde yüklenen her ELF paylaşılan kitaplığı (
.so) ve ELF Derleme Kimliği'nin ilk sekiz onaltılık karakteriyle doldurulur. ASfP, her derleme kimliğiniout/target/product/<device>/symbolsile eşleştirir (APEX'lerdeki kitaplıkların çözümlenmesi içinsymbols/.build-idgereklidir):- Doğrulanmış kitaplıklarda onay işareti simgesi gösterilir. Tam yerel
.debugsembol yolunu önizlemek için çözümlenmiş herhangi bir satırın üzerine gelin. - Eşleşen yerel sembolleri olmayan çözümlenmemiş kitaplıklar, uyarı simgesiyle gösterilir.
- Doğrulanmış kitaplıklarda onay işareti simgesi gösterilir. Tam yerel
- Java dışı işlem algılama: C++ veya Rust işlemi seçtiğinizde (altıgen
Csimgesiyle işaretlenir) ASfP, Java hata ayıklayıcısını gizler ve Yerel hata ayıklayıcı'yı işaretli tutarak Java hata ayıklama kullanılamıyor, Java işlemi değil. mesajını gösterir. - C, C++ veya Rust kaynak dosyalarınızda kesme noktaları ayarlayın, Ekle'yi tıklayın ve cihazda kod yolunu tetikleyin.

Rust kodunda hata ayıklama
ASfP, Rust platform kodunda hata ayıklamak için C ve C++'da kullanılan yerleşik LLDB hata ayıklayıcısını kullanır. Harici bir bağdaştırıcı veya manuel sunucu kurulumu gerekmez: ASfP, paketlenmiş araç zincirinden lldb-dap kullanır ve Rust'ın güzel yazıcılarını AOSP önceden oluşturulmuş dosyalarınızdan otomatik olarak yükler. Böylece String, Vec, HashMap ve Option gibi standart türler Değişkenler bölmesinde yapılandırılmış değerler olarak gösterilir.
Bir cihazda çalışan Rust işlemine ekleme
Sistem süreci (C ve C++) hata ayıklama bölümündeki adımları uygulayın: Run > Attach to Android Process'i (Çalıştır > Android Sürecine Ekle) açın, Device is rooted'ı (Cihazda root erişimi var) doğrulayın ve yerel sembollerin Libraries (Kitaplıklar) panelinde onay işareti gösterdiğinden emin olun, Native debugger'ı (Yerel hata ayıklayıcı) işaretli tutun ve Attach'i (Ekle) tıklayın. Rust ve C veya C++ yığın çerçeveleri aynı hata ayıklama oturumunda birlikte görünür.
rust_test veya rust_test_host modülünde hata ayıklama
Android.bpveyarust_test_hosthedefi bildirenrust_testdosyasını açın ve modül türünün yanındaki olukta Çalıştır simgesini tıklayın.- Debug '<ModuleName>' (Hata ayıklama "<ModuleName>") seçeneğini belirleyin. ASfP, hedefi oluşturur, test ikili dosyasını ana makinenizde veya bağlı cihazınızda LLDB altında başlatır ve Rust kesme noktalarınızda duraklatır.
- Tek bir test işlevinde hata ayıklamak veya LLDB başlangıç komutlarını özelleştirmek için Run > Edit Configurations'ı (Çalıştır > Yapılandırmaları Düzenle) açın, oluşturulan Soong Test yapılandırmasını seçin ve Method'u (Yöntem) ayarlayın veya Debugger (Hata Ayıklayıcı) seçeneklerini genişletin. Soong Test yapılandırma seçenekleri hakkında daha fazla bilgi için atest ile test platformu kodu başlıklı makaleyi inceleyin.
