Android NDK漂亮打印

6

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

我想要能够调试STD库的内容。我看过几个使用Python脚本启用“漂亮打印”功能的教程。问题是它们都使用默认的gdb,而不是由Android NDK提供的gdb,所以它们对我来说都失败了。

如何使用Android NDK调试STD库?


有趣的问题,我已经寻找这样的可能性很长时间了!尽管有赏金,但仍然没有答案 :-/. - PhilLab
我也在寻找如何为Android NDK进行漂亮的打印输出。 - martinako
1个回答

4
如果你只需要调试,而不是使某个已选择的工具起作用,我可以分享这段代码:
#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来避免记住顺序))

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


谢谢您的回答,但这不是我要找的。我不想在每个地方都写DLOG。我需要能够在调试时检查例如std::vector等内容。目前,它只显示内存地址。 - user3468999

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接