首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态调试android原生c/c++日志?

如何动态调试android原生c/c++日志?
EN

Stack Overflow用户
提问于 2020-08-25 12:57:05
回答 1查看 454关注 0票数 0

我想调试一些android原生的c/c++代码,如PROJECT_NAME/frameworks/av/media/libaudioclient/AudioTrack.cpp等,但当我使用cmd logcat时,我无法获得像D&I&V这样的日志级别。我尝试在AudioTrack.cpp文件顶部取消对//#define LOG_NDEBUG 0的注释,但我有两个问题:

一个是我想要动态打开或关闭日志,但在这种方法中,我必须注释/取消#define LOG_NDEBUG 0。另一个是虽然我取消了对#define LOG_NDEBUG 0的注释,并忍受了很长一段时间的make target-files-package -j12,但它不能在终端中打印出日志级别的“详细”。我的问题是,是否有一些方法可以动态(比如读取和编辑xxx.xml)来捕获android原生c/c++调试日志(包括详细、信息、调试级别)?

EN

回答 1

Stack Overflow用户

发布于 2020-08-25 13:19:21

您可以定义cppFlags,在此基础上可以在本机代码中切换日志

app build.gradle -

代码语言:javascript
复制
externalNativeBuild {
            cmake {
                cppFlags += "-DBUILD_DEBUG"
            }
        }

在原生代码中创建日志常量(可能在一些头文件中)-

代码语言:javascript
复制
#ifdef BUILD_DEBUG

#include<android/log.h>
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "tag", __VA_ARGS__)

#else

#define LOGV(...)

#endif

最后,像这样使用它- LOGV("log to print")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63572283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档