c++ - Android NDK pretty-print

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

我正在使用 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__)

我同时定义了 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 一些东西

关于c++ - Android NDK pretty-print ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24364303/

相关文章:

c++ - 无法使用 QFileSystemModel 为不同的音频/视频文件解析系统目录

android - 如何使用 NDK 为 OpenCV 引用 hpp 文件?

java - 在 Android Studio 1.5 中设置 NDK 开发

android - 包含 .so 文件时减小 APK 的大小

c++ - 拥有 std::map 的最佳方法,如果没有 key ,我可以在其中定义返回的内容?

c++ - 在 C++ 中给出两个整数 vector (相同的大小和类型),我想将其中一个从最小元素到最大元素排序并更改第二个 vector 的顺序

c++ - 如何在 Windows 上将串行数据从 Python 脚本发送到 Arduino - 没有用

c++ - 确保在编译时只在一个地方调用方法

Android:在 android studio 中进行 NDK-Build C/C++ 调试

C++ std::set<string> 字母数字自定义比较器