大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
在使用QXDM打印高通sensor日志的时候,经常会发现有些赋予已经权限很高的log居然打印不出来,这就个代码的追踪带来了一系列困难,鉴于此,我研究了一下高通中log打印问题,给大家今后的使用带来一些经验。
在高通的关于日志的头文件定义中,许多日志是默认不打开的,研究代码:
#if (BUILD_DRAGON_BOARD) && (DEBUG_DATA)
#define LSM6DSM_DATA_MSG_0(level,msg) MSG(MSG_SSID_QDSP6,DBG_##level##_PRIO, DEVICE_NAME" - "msg)
#define LSM6DSM_DATA_MSG_1(level,msg,p1) MSG_1(MSG_SSID_QDSP6,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1)
#define LSM6DSM_DATA_MSG_2(level,msg,p1,p2) MSG_2(MSG_SSID_QDSP6,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1,p2)
#define LSM6DSM_DATA_MSG_3(level,msg,p1,p2,p3) MSG_3(MSG_SSID_QDSP6,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1,p2,p3)
#elif (!BUILD_DRAGON_BOARD) && (DEBUG_DATA)
#define LSM6DSM_DATA_MSG_0(level,msg) MSG(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg)
#define LSM6DSM_DATA_MSG_1(level,msg,p1) MSG_1(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1)
#define LSM6DSM_DATA_MSG_2(level,msg,p1,p2) MSG_2(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1,p2)
#define LSM6DSM_DATA_MSG_3(level,msg,p1,p2,p3) MSG_3(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg,p1,p2,p3)
#else
#define LSM6DSM_DATA_MSG_0(level,msg)
#define LSM6DSM_DATA_MSG_1(level,msg,p1)
#define LSM6DSM_DATA_MSG_2(level,msg,p1,p2)
#define LSM6DSM_DATA_MSG_3(level,msg,p1,p2,p3)
#endif
可以看到,关于一个LSM6DSM_DATA_MSG_X代码,就有三种不同的定义方式,我研究发现,只有第二种的定义方式
#define LSM6DSM_DATA_MSG_0(level,msg) MSG(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg)
才能够在QXDM中显示出来。
所以,为了简单期间,若要想利用QXDM跟踪高通日志,同时不想被高通中复杂的日志定义方式搞得头晕,建议你在相应的头文件中直接宏定义一下自己的打印方法,沿用第二种方式。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188010.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...