2012-05-24 22 views
5

Saf C++ kodundan çıkarılabilir bir ikili oluşturdum ve android cihazda çalışırken zaman hatası veriyor.Android'de saf yerel kodun nasıl hata ayıklanır?

Android için doğal yerel kodda nasıl hata ayıklayabilirim? Var olan yöntemler saf yerel kod için değil gibi görünüyor.

+0

http://stackoverflow.com/questions/how-to-ask adresini okumanızı ve yanıt almanıza yardımcı olma becerimizi geliştirmemizi tekrar etmenizi öneririz. –

+0

Teşekkürler. Çözümü buldum. Buradan gönderin ve başkalarının bu sorundan rahatsız olmasına yardımcı olabileceğini umuyoruz. – behe

cevap

0

Android, GDB kullanımını destekler. Bununla birlikte, "saf C++" ile, uygulamada hiç Java olmadığını kastediyorsanız, teknik olarak buna izin verilmediğini (kesinlikle bunu yapabilirsiniz) unutmayın. the NDK page.

3

1. Adım Bkz: android emülatörü (varsayalım o testexec adlı) gdbserver ve sizin unstrippedikil yürütülebilir koyun. Örneğin. klasör/veri/veri/test altına alabilirsiniz. Ve bunlara izin eklemek için chmod komutunu kullanın.

Adım 2: gdb hata ayıklayıcısını başlatın.

Adım 2.1: Ve bu adım alt adımları aşağıdaki gibidir host makine terminalde komutu yazarak emülatör gdb debugger başlatın:

adb shell /data/data/test/gdbserver 10.0.2.2:1234 /data/data/test/testexec 

emülatörü sonra port 1234 tarihinde dinleyecek.

Adım 2.2:

telnet localhost 5554 
: emülatör gdbserver ile yerel makinenin gdb debugger bağlayın

O isteyecektir:

Android Konsolu: tip 'yardım'

Tamam komutların listesi

Sonra giriş için:

redir add tcp:1234:1234 

etkinleştirmek için verilerin yeniden yönlendirme ve sonra

yazın

Step2.3: Yerel makinenin gdb hata ayıklayıcısını başlatın. Girdi: Bundan sonra

arm-linux-androideabi-gdb.exe YOUR_ EXECUTABLE_PATH_ON_LOCAL_MACHINE\testexec 

, giriş

target remote localhost:1234 

gdbserver bağlanmak için kullanılır.

Son olarak, hata ayıklama işleminin tadını çıkarın!

+0

telnet ile gerçek cihaza nasıl bağlanacağınızı biliyor musunuz - bir emülatör değil? 'adb shell ip -f inet addr show' ile ip için sorgulamaya çalışıyordum ama bağlanamıyorum – Chris

İlgili konular