2012-09-26 13 views
7

Ho installato il Sequoyah Android Native Support e ora posso eseguire la modalità di debug. Ho un breakpoint nella stessa riga dove chiamo un metodo nativo, quindi quando eseguo la modalità Java di debug, eclipse si ferma in questa riga, eseguo 'ndk-gdb', e pranza la modalità di debug C/C++, I vedi la console fare qualcosa. Ma come posso inserire i punti di rottura C? Perché il mio codice C è una libreria .so, quindi non posso inserire i breakpoint in questo file. Ho un flettore JNI in cui ci sono file .c e .h, ma non si ferma quando inserisco i breakpoint. Il registro Eclipse riconosce i punti di interruzione, ma stampa un errore.Come eseguire il debug di un'app Android nativa?

break-insert com_example_pruebaffmpeg_MainActivity.c: 4323 errore, msg = "Nessuna tabella di simboli è stata caricata. Utilizzare il comando \" file \ "."

+0

Hai compilato il tuo codice C con le informazioni/simboli di debug inclusi? Se stai compilando con GCC, assicurati di includere l'opzione '-g' su entrambi i passaggi di compilazione e di collegamento. –

+0

Non so cosa mi spieghi. Sto usando il ndk-build per compilare il mio codice C e ottenere una libreria .so. E eseguo il progetto Android in Eclipse con lo strumento NDK. – beni

+1

Per ndk-build ci sono altri passi che devi compiere per costruire con i simboli di debugging. Dai un'occhiata a [questa domanda] (http://stackoverflow.com/questions/8934575/debugging-android-ndk-native-apps) –

risposta

1

Hai provato a disinstallare Sequoyah e ad usare solo l'ADT? A partire dalla versione 20, il Eclipse ADT plugin può eseguire il debug dei progetti NDK in modo più semplice e affidabile rispetto al vecchio modo di fare Sequoyah.

+0

Ho disinstallato il Sequoyah e ho provato ad avviare il debugger usando l'ADT , ma non funziona. Potresti spiegarci un po 'di più o pubblicare un link? – beni

+0

Sto seguendo le istruzioni su questo [collegamento] (http://tools.android.com/recent/usingthendkplugin), ma il debugger non funziona – beni

+0

E la console stampa questo errore ----> avviso: mentre analisi dell'elenco di librerie di destinazione (alla riga 2): Nessun segmento definito per/system/bin/linker BFD:/home/beni/spazio di lavoro/Prueba/obj/local/armeabi-v7a/linker: avviso: sh_link non impostato per la sezione ' .ARM.exidx ' avviso: Impossibile caricare i simboli di libreria condivisa per 63 librerie, ad es. libstdC++. così. Utilizzare il comando "info sharedlibrary" per visualizzare l'elenco completo. Avete bisogno di "impostare solib-search-path" o "set sysroot"? Nessuna tabella dei simboli caricata. Usa il comando "file". – beni

Problemi correlati