2014-06-23 23 views
6

Używam Androida NDK z Eclipse + CDT, działa na OSX.NDK z Androidem ładnie drukuje

Chciałbym móc debugować zawartość biblioteki STD. Widziałem kilka tutoriali na temat używania skryptów w języku Python do włączenia tego "ładnego drukowania". Problem polega na tym, że wszyscy używają domyślnego gdb, a nie tego, który zapewnia Android NDK, więc wszystkie z nich zawodzą.

Jak mogę debugować bibliotekę STD za pomocą Android NDK?

+0

Interesujące pytanie, szukałem takiej możliwości przez długi czas! Nadal nie ma odpowiedzi pomimo nagrody: - /. – PhilLab

+0

Szukam również sposobu drukowania w Androidzie NDK – martinako

Odpowiedz

4

Jeśli trzeba tylko debug, zamiast zarobić już wybraną pracę narzędzia, mogę udostępnić ten kod:

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__) 

zdefiniować zarówno DLOG i LOGD do unikaj pamiętania zamówienia))

w Android.mk:

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

Zastosowanie:

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

Widzisz te wiadomości w tym samym miejscu, gdzie można zobaczyć wyjście Log.d(), wolę adb logcat lub adb logcat | grep something.

+0

Dziękuję za odpowiedź, ale nie jest to, czego szukam. Nie chcę pisać wszystkiego co DLOG. Muszę być w stanie sprawdzić np. Std :: vector w danym momencie, debugowanie za pomocą Eclipse. Właśnie pokazuje wskazówki dotyczące pamięci. – user3468999

Powiązane problemy