2014-06-23 10 views
6

Sto usando Android NDK con Eclipse + CDT, in esecuzione su OSX.Android NDK pretty printing

Mi piacerebbe essere in grado di eseguire il debug del contenuto della libreria STD. Ho visto diversi tutorial sull'uso degli script Python per abilitare questa "bella stampa". Il problema è che tutti usano il gdb predefinito, e non quello fornito da NDK di Android, quindi tutti mi stanno fallendo.

Come è possibile eseguire il debug della libreria STD utilizzando Android NDK?

+0

Interessante domanda, ho cercato una tale possibilità per molto tempo! Ancora nessuna risposta nonostante la generosità: - /. – PhilLab

+0

Sto anche cercando come fare una bella stampa per Android NDK – martinako

risposta

4

Se è necessario solo eseguire il debug, piuttosto che fare un certo lavoro strumento già scelto, posso condividere questo codice:

dlog.h:

#include <android/log.h> 
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "~~~~~~", __VA_ARGS__) 
#define DLOG(...) __android_log_print(ANDROID_LOG_DEBUG , "~~~~~~", __VA_ARGS__) 
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "~~~~~~", __VA_ARGS__) 
#define ELOG(...) __android_log_print(ANDROID_LOG_ERROR , "~~~~~~", __VA_ARGS__) 

ho definire sia DLOG e LOGD a evitare di dover ricordare l'ordine))

in Android.mk:

include $(CLEAR_VARS) 
LOCAL_MODULE := ... 
LOCAL_SRC_FILES += ... 
LOCAL_LDLIBS := -llog  # <=========== link with liblog.so 
include $(BUILD_SHARED_LIBRARY) 

Usage:

DLOG("this is a test %s 0x%x","whoa!",1234); 

vedi questi messaggi nello stesso luogo in cui si vede l'uscita Log.d(), preferisco adb logcat o adb logcat | grep something.

+0

Grazie per la risposta ma non è quello che sto cercando. Non voglio dover scrivere DLOG ovunque. Devo essere in grado di controllare, ad esempio, un vettore std :: in un momento dato, eseguendo il debug con eclissi. In questo momento, sta solo mostrando le indicazioni della memoria. – user3468999