use*_*999 6 c++ std pretty-print c++-standard-library android-ndk
我正在使用Android NDK和Eclipse + CDT,在OSX上运行.
我希望能够调试STD库的内容.我已经看过几个关于使用Python脚本来实现这种"漂亮打印"的教程.问题是所有这些都使用默认的gdb,而不是Android NDK提供的那个,所以它们都失败了.
如何使用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__)
Run Code Online (Sandbox Code Playgroud)
我定义了DLOG和LOGD以避免必须记住顺序))
在 Android.mk中:
include $(CLEAR_VARS)
LOCAL_MODULE := ...
LOCAL_SRC_FILES += ...
LOCAL_LDLIBS := -llog # <=========== link with liblog.so
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
用法:
DLOG("this is a test %s 0x%x","whoa!",1234);
Run Code Online (Sandbox Code Playgroud)
您可以在看到Log.d()输出的同一位置看到这些消息,我更喜欢adb logcat或adb logcat | grep something。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |