【问题标题】:Android NDK pretty printingAndroid NDK 漂亮打印
【发布时间】:2014-08-13 09:32:33
【问题描述】:

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

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

如何使用 Android NDK 调试 STD 库?

【问题讨论】:

  • 有趣的问题,我找了很久了!尽管有赏金,但仍然没有答案:-/.
  • 我也在寻找如何为 Android NDK 做漂亮的打印

标签: c++ android-ndk std pretty-print c++-standard-library


【解决方案1】:

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

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 以避免记住顺序))

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,使用 eclipse 进行调试。现在,它只是显示内存方向。
猜你喜欢
  • 1970-01-01
  • 2021-06-22
  • 2016-07-07
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 2023-03-07
  • 2013-06-21
相关资源
最近更新 更多