NDK, bir komut dosyası başlatmak için ndk-gdb
adlı bir kabuk komut dosyası
komut satırı yerel hata ayıklama oturumu. GUI kullanmayı tercih eden kullanıcılar
Android Studio kullanın.
Gereksinimler
Komut satırında yerel hata ayıklamanın çalışması için şu koşulların karşılanması gerekir:
ndk-build
komut dosyasını kullanarak uygulamanızı oluşturun.ndk-gdb
komut dosyası , derleme için eskimake APP=<name>
yönteminin kullanılmasını desteklemez.AndroidManifest.xml
dosyanıza birandroid:debuggable
özelliğinitrue
olarak ayarlayan<application>
öğesi.- Uygulamanızı Android 2.2 (Android API düzeyi 8) veya sonraki sürümlerde çalışacak şekilde oluşturun.
- Android 2.2 veya sonraki sürümleri çalıştıran bir cihazda ya da emülatörde hata ayıklayın.
Hata ayıklama amacıyla,
AndroidManifest.xml
dosyanızda belirttiğiniz API düzeyi önemli değildir. - Uygulamanızı Unix kabuğunda geliştirin. Windows'da Cygwin kullanın
veya deneysel
ndk-gdb-py
Python hakkında bilgi edindiniz. - 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
somut olarak ortaya koyar. Örnek:
cd $PROJECT $NDK/ndk-gdb
Burada $PROJECT
, projenizin kök dizinini, $NDK
ise sizin projenizin kök dizinini işaret eder
NDK yükleme yolu.
ndk-gdb
yöntemini çağırdığınızda oturumu kaynak dosyalarınızı arayacak şekilde yapılandırır
ve simge/hata ayıklama sürümleriyle birlikte sunulur.
ndk-gdb
, uzun bir dizi hata mesajı veriyorsa
bulmanız gerekir. Bu normaldir çünkü ana makinenizde
bu kitaplıkların hedef cihazınızda simge sürümlerini/hata ayıklama sürümlerini kullanın. Bunları güvenle yoksayabilirsiniz
mesaj.
Ardından, ndk-gdb
normal GDB istemi görüntüler.
ndk-gdb
ile, GNU GDB ile aynı şekilde etkileşim kurarsınız. Örneğin, şunları yapabilirsiniz:
ayrılma noktalarını ayarlamak için b <location>
ve c
("devam" için) öğesini kullanın
devam ettirebilirsiniz. Kapsamlı bir komut listesi için şuraya bakın:
GDB kılavuzu. Örneğin,
LLDB Debugger'ı kullanıyorsanız --lldb
seçeneğinin yanındaki kutuyu işaretleyin.ndk-gdb
GDB isteminden çıktığınızda, hata ayıkladığınız uygulama işleminin duracağını unutmayın. Bu bir gdb sınırlamasıdır.
ndk-gdb
, birçok hata koşulunu ele alır ve aşağıdaki durumlarda bilgilendirici bir hata mesajı gösterir
bulur. 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ıklanabilir olarak beyan edilip edilmediğini kontrol eder.
- Cihazda aynı paket adına sahip yüklü uygulamanın da hata ayıklaması yapılabilir.
ndk-gdb
varsayılan olarak zaten çalışmakta olan bir uygulama işlemini arar ve
hatası verir. Ancak, --start
veya
Hata ayıklama işleminden önce etkinliğinizi otomatik olarak başlatmak için --launch=<name>
seçeneği
kabul edilir. Daha fazla bilgi için Seçenekler bölümüne göz atın.
Seçenekler
Seçeneklerin tam listesini görmek için komut satırına ndk-gdb --help
yazın. Tablo 1
en sık kullanılanlardan bazılarını kısa açıklamalarla birlikte gösterir.
ndk-gdb
bu seçenek belirtildiğinde, listelenen ilk başlatılabilir etkinliği başlatır
kullanabilirsiniz. Bir sonraki başlatılabilir öğeyi başlatmak için --launch=<name>
kullanın
etkinliği'ne dokunun. Başlatılabilir etkinliklerin listesinin dökümünü almak için komuttan --launch-list
komutunu çalıştırın
satırında görünür.
Option | Açıklama> |
---|---|
--lldb |
Ayarlanırsa komut dosyası, oturum için gdb yerine LLDB Debugger'ı kullanır. |
--verbose |
Bu seçenek, derleme sistemine yerel hata ayıklama ile ilgili ayrıntılı bilgileri yazdırmasını söyler
oturum kurulumu. Bu işlem, yalnızca hata ayıklayıcının sunucuya bağlanamadığı durumlarda,
|
--force |
ndk-gdb , başka bir yerel hata ayıklama oturumunun zaten olduğunu tespit ederse varsayılan olarak işlemi iptal eder
olduğunu fark edebilirsiniz. Bu seçenek diğer oturumu sonlandırır ve yeni bir oturumla değiştirir.
Bu seçeneğin, hata ayıklaması yapılan asıl uygulamayı kapatmadığını ve bu işlemi sonlandırmanız gerektiğini unutmayın.
ayrı olarak düzenleyebilirsiniz. |
--start |
|
--launch=<name> |
Bu seçenek |
--launch-list |
Bu pratik seçenek,
uygulama manifest'inde yer alır. |
--project=<path> |
Bu seçenek, uygulama proje dizinini belirtir. Bu, özellikle de ilk kurum içi komut dosyasını yüklemeniz gerekir. |
--port=<port> |
|
--adb=<file> |
Bu seçenek, adb yürütülebilir bir araç. 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. Aşağıdaki durumlarda bu işaretleri ayarlayın: ana makinenize bağlı çeşitli cihazlar veya emülatörler. Bu terimlerin anlamları aşağıdaki gibidir:
Alternatif olarak, belirli bir aracı listelemek için |
--exec=<file> -x <file> |
Bu seçenek, |
--nowait |
GDB bağlanana kadar Java kodunu duraklatmayı devre dışı bırakın. Bu seçeneğin iletilmesi, hata ayıklayıcının çalıştırılmasına neden olabilir. kaçırabilirsiniz. |
--tui
-t |
Varsa Metin Kullanıcı Arayüzünü etkinleştirin. |
--gnumake-flag=<flag> |
Bu seçenek,
|
Not: Bu tablodaki son üç seçenek yalnızca
ndk-gdb
Python sürümü.
İleti dizisi desteği
Uygulamanız, Android 2.3'ten (API düzeyi 9) daha eski bir platformda çalışıyorsa ndk-gdb
yerel iş parçacıklarının hatalarını düzgün şekilde ayıklayamıyor. Hata ayıklayıcı yalnızca ana iş parçacığında hata ayıklayabilir (ABD, tamamen)
diğer ileti dizilerinin yürütülmesini yoksayar.
Ana olmayan bir iş parçacığında yürütülen bir işleve ayrılma noktası yerleştirirseniz program çıkar ve GDB şu mesajı gösterir:
Program terminated with signal SIGTRAP, Trace/breakpoint trap. The program no longer exists.