我正在使用 Android NDK 和 Eclipse + CDT,在 OSX 上运行。
我希望能够调试 STD 库的内容。我看过一些关于使用 Python 脚本启用这种“ pretty-print ”的教程。问题是它们都使用默认的 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__)
我同时定义了 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 一些东西
。
关于c++ - Android NDK pretty-print ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24364303/