大家好,又见面了,我是你们的朋友全栈君。
在使用QXDM打印高通sensor日志的时候,经常会发现有些赋予已经权限很高的log居然打印不出来,这就个代码的追踪带来了一系列困难,鉴于此,我研究了一下高通中log打印问题,给大家今后的使用带来一些经验。 在高通的关于日志的头文件定义中,许多日志是默认不打开的,研究代码:
代码语言:javascript复制#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代码,就有三种不同的定义方式,我研究发现,只有第二种的定义方式
代码语言:javascript复制#define LSM6DSM_DATA_MSG_0(level,msg) MSG(MSG_SSID_SNS,DBG_##level##_PRIO, DEVICE_NAME" - "msg)
才能够在QXDM中显示出来。 所以,为了简单期间,若要想利用QXDM跟踪高通日志,同时不想被高通中复杂的日志定义方式搞得头晕,建议你在相应的头文件中直接宏定义一下自己的打印方法,沿用第二种方式。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。