Android NDK漂亮的打印

Android NDK pretty printing

本文关键字:打印 漂亮 NDK Android      更新时间:2023-10-16

我使用Android NDK与Eclipse + CDT,在OSX上运行。

我希望能够调试STD库的内容。我看过一些关于使用Python脚本启用这种"漂亮的打印"的教程。问题是它们都使用默认的gdb,而不是Android NDK提供的gdb,所以它们对我来说都失败了。

如何使用Android NDK调试STD库?

如果你只需要调试,而不是让一些已经选择的工具工作,我可以分享这段代码:

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

我定义了DLOGLOGD,以避免记住顺序))

在<<p> em> 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 logcatadb logcat | grep something