Sto provando a eseguire il debug di un'applicazione Android nativa dal debugging nativo di Android Studio usando lldb.
La mia app nativa contiene una libmain.so compilata ed eseguita da Android Studio e un'altra libother.so esterna compilata da me. quando eseguo il debug, sono in grado di impostare i breakpoint in libmain.so ma non in libother.so.
Entrambi gli oggetti condivisi sono rimossi, ma in qualche modo Android Studio rende lldb noto della versione non cancellata di libmain.so. Voglio fare lo stesso per libother.so.LLDB: aggiungi un file di simboli?
Quale comando è necessario fornire a lldb in modo che carichi i simboli da un file non striptato sul mio computer locale?
Quando faccio image list
vedo la .so principale con un percorso i punti alla sua versione unstripped locale:
/Users/username/Projects/gow/android/AppName/app/build/intermediates/binaries/debug/arm7/obj/armeabi-v7a/libmain.so
e la seconda .so con un percorso simile /var/folders/3w/5nr95lxx3qvdm2ylb8c8b7500000gn/T/./lldb/module_cache/remote-android/.cache/B5F32653-0000-0000-0000-000000000000/libother.so
Come faccio fai lldb a trovare la versione non lisce di libother.so
?
Ho provato image add
e ma non ha funzionato.
fa a costruire l'applicazione con Gradle? Se è così, puoi condividere il tuo file di costruzione? Condivido anche il tuo file Android.mk –
Lo faccio con gradle. Il file di build è identico a quello fornito con l'esempio di Teapot (https://developer.android.com/ndk/samples/sample_teapot.html) L'unica differenza è che nel mio progetto ho una cartella chiamata "jniLibs" così gradle trova questa cartella e aggiunge il .so in esso all'apk. Android.mk per la costruzione di .so è anche uno standard che è stato utilizzato per creare con l'ndk prima del supporto di Android Studio. usa clang e C++ _ static (troppo grande da aggiungere qui). Sto usando i latest NDK – shoosh
Stai eseguendo il debug su Windows? I percorsi da te forniti presumono da Android. Ci sono ancora alcuni bug noti in NDK; quando il debugging con i breakpoint LLDB non funziona sempre su Windows; se ci si imbatte in questo, è possibile passare al debugging GDB come soluzione temporanea. –