Я использую Android NDK с Eclipse + CDT, работающий на OSX.
Я хотел бы иметь возможность отлаживать содержимое библиотеки STD. Я видел несколько руководств по использованию скриптов Python для включения этой «красивой печати». Проблема в том, что все они используют GDB по умолчанию, а не тот, который предоставляется Android NDK, поэтому все они мне не подходят.
Как отладить библиотеку STD с помощью Android NDK?
Если вам нужно просто отладить, а не заставить какой-то уже выбранный инструмент работать, я могу поделиться этим кодом:
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__)
Я определяю оба DLOG
а также LOGD
чтобы избежать запоминания порядка))
в Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE := ...
LOCAL_SRC_FILES += ...
LOCAL_LDLIBS := -llog # <=========== link with liblog.so
include $(BUILD_SHARED_LIBRARY)
Использование:
DLOG("this is a test %s 0x%x","whoa!",1234);
Вы видите эти сообщения в том же месте, где вы видите Log.d()
выходной я предпочитаю adb logcat
или же adb logcat | grep something
,