我正在使用Eclipse + CDT和Android NDK,在OSX上运行。
我想要能够调试STD库的内容。我看过几个使用Python脚本启用“漂亮打印”功能的教程。问题是它们都使用默认的gdb,而不是由Android NDK提供的gdb,所以它们对我来说都失败了。
如何使用Android NDK调试STD库?
我正在使用Eclipse + CDT和Android NDK,在OSX上运行。
我想要能够调试STD库的内容。我看过几个使用Python脚本启用“漂亮打印”功能的教程。问题是它们都使用默认的gdb,而不是由Android NDK提供的gdb,所以它们对我来说都失败了。
如何使用Android NDK调试STD库?
#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
。