NDK, komut satırı yerel hata ayıklama oturumu (eski adıyla gdb, şimdi lldb) başlatmak için ndk-gdb
adlı bir kabuk komut dosyası içerir.
GUI kullanmayı tercih eden kullanıcılar bunun yerine Android Studio'da hata ayıklama ile ilgili dokümanları okumalıdır.
Şartlar
Komut satırı yerel hata ayıklama özelliğinin çalışması için aşağıdaki koşulların karşılanması gerekir:
ndk-build
komut dosyasını kullanarak uygulamanızı oluşturun.ndk-gdb
komut dosyası, oluşturmak için eskimake APP=<name>
yönteminin kullanılmasını desteklemez.android:debuggable
özelliğinitrue
olarak ayarlayan bir<application>
öğesi ekleyerekAndroidManifest.xml
dosyanızda uygulama hata ayıklamasını etkinleştirin.- Uygulamanızı Android 2.2 (Android API düzeyi 8) veya sonraki sürümlerde çalışacak şekilde derleyin.
- Android 2.2 veya daha yeni sürümlerin yüklü olduğu bir cihazda veya emülatörde hata ayıklama
Hata ayıklama amacıyla,
AndroidManifest.xml
dosyanızda belirttiğiniz hedef API düzeyi önemli değildir. - Uygulamanızı bir Unix kabuğunda geliştirin. Windows'ta Cygwin veya deneysel
ndk-gdb-py
Python uygulamasını kullanın. - GNU Make 3.81 veya sonraki bir sürümü kullanın.
Kullanım
ndk-gdb
komut dosyasını çağırmak için uygulama dizinine veya altındaki bir dizin Örnek:
cd $PROJECT $NDK/ndk-gdb
Burada $PROJECT
, projenizin kök dizinini, $NDK
ise NDK yükleme yolunuzu gösterir.
ndk-gdb
çağrıldığında oturum, kaynak dosyalarınızı ve oluşturulan doğal kitaplıklarınızın simge/hata ayıklama sürümlerini arayacak şekilde yapılandırılır. ndk-gdb
, uygulama işleminize başarıyla bağlandığında çeşitli sistem kitaplıklarını bulamadığına dair uzun bir hata mesajı dizisi gösterir. Barındırma makineniz, hedef cihazınızda bu kitaplıkların simge/hata ayıklama sürümlerini içermediğinden bu normaldir. Bu mesajları güvenle yoksayabilirsiniz.
Ardından ndk-gdb
, normal lldb istemini gösterir.
ndk-gdb
ile lldb ile yaptığınız gibi etkileşimde bulunursunuz.
LLDB'yi bilmiyorsanız ancak GDB'yi biliyorsanız faydalı [GDB'den LLDB'ye komut haritasına](https://lldb.llvm.org/use/map.html) bakın.
ndk-gdb
birçok hata durumunu ele alır ve bir sorun bulursa bilgilendirici bir hata mesajı gösterir. Bu kontroller, aşağıdaki koşulların karşılandığından emin olmayı içerir:
- ADB'nin yolunuzda olup olmadığını kontrol eder.
- Uygulamanızın, manifest dosyasında hata ayıklama özelliğine sahip olarak beyan edilip edilmediğini kontrol eder.
- Cihazdaki aynı paket adına sahip yüklü uygulamanın da hata ayıklama özelliğine sahip olup olmadığını kontrol eder.
Varsayılan olarak ndk-gdb
, zaten çalışan bir başvuru sürecini arar ve bulamazsa hata mesajı gösterir. Ancak, hata ayıklama oturumundan önce etkinliğinizi otomatik olarak başlatmak için --start
veya --launch=<name>
seçeneğini kullanabilirsiniz. Daha fazla bilgi için Seçenekler bölümüne bakın.
Seçenekler
Seçeneklerin tam listesini görmek için komut satırına ndk-gdb --help
yazın. Tablo 1'de, sık kullanılan bazı anahtar kelimeler kısa açıklamalarla birlikte gösterilmektedir.
Tablo 1. Sık kullanılan ndk-gdb seçenekleri ve açıklamaları.
Bu seçenekle ndk-gdb
'ü başlattığınızda uygulama manifest dosyanızda listelenen ilk başlatılabilir etkinlik başlatılır. Bir sonraki başlatılabilir etkinliği başlatmak için --launch=<name>
simgesini kullanın. Başlatılabilir etkinliklerin listesini dökmek için komut satırından --launch-list
komutunu çalıştırın.
Option | Açıklama> |
---|---|
--verbose |
Bu seçenek, derleme sistemine yerel hata ayıklama oturumu kurulumu hakkında ayrıntılı bilgi yazdırmasını söyler. Yalnızca hata ayıklayıcı uygulamaya bağlanamadığında ve |
--force |
Varsayılan olarak ndk-gdb , aynı cihazda zaten başka bir yerel hata ayıklama oturumu olduğunu tespit ederse işlemi durdurur. Bu seçenek, diğer oturumu sonlandırır ve yeni bir oturumla değiştirir.
Bu seçeneğin, hata ayıklanan asıl uygulamayı kapatmadığını unutmayın. Uygulamayı ayrı olarak kapatmanız gerekir. |
--start |
|
--launch=<name> |
Bu seçenek, uygulamanızdan belirli bir etkinliği başlatmanıza olanak tanıması dışında |
--launch-list |
Bu kolaylık seçeneği, uygulama manifest dosyanızda bulunan tüm başlatılabilir etkinlik adlarının listesini yazdırır. |
--project=<path> |
Bu seçenek, uygulama projesi dizinini belirtir. Önce proje dizinine geçmek zorunda kalmadan komut dosyasını başlatmak istiyorsanız bu yöntemden yararlanabilirsiniz. |
--port=<port> |
Varsayılan olarak |
--adb=<file> |
Bu seçenek, adb aracının yürütülebilir dosyasını belirtir. Yalnızca yolunuzu bu yürütülebilir dosyayı içerecek şekilde ayarlamadıysanız gereklidir. |
-d -e -s <serial> |
Bu işaretler, aynı ada sahip adb komutlarına benzer. Ana makinenize bağlı birkaç cihaz veya emülatör varsa bu işaretleri ayarlayın. Bu kodların anlamları şu şekildedir:
Alternatif olarak, belirli bir seçenek kullanmaya gerek kalmadan belirli bir cihazı listelemek için |
--exec=<file> -x <file> |
Bu seçenek, |
--nowait |
Hata ayıklayıcı bağlanana kadar Java kodunun duraklatılmasını devre dışı bırakın. Bu seçeneğin iletilmesi, hata ayıklayıcının erken kesme noktalarını kaçırmasına neden olabilir. |
--tui
-t |
Mevcutsa metin kullanıcı arayüzünü etkinleştirin. |
--gnumake-flag=<flag> |
Bu seçenek, proje bilgileri için |
Not: Bu tablodaki son üç seçenek yalnızca ndk-gdb
'nin Python sürümünde kullanılabilir.