Bui~Bui~大家是否还在连着线debug,一次次操作复现问题吗?是否还在努力回忆复现步骤的情形吗?是否还在为小几率死机而抓不到log的问题烦恼吗?
不用担心,它,它,它来了。无须接线,帮您轻松记录每次死机log;无须及时提取,只要不重烧,log永久保存,想什么时候取就什么时候取;自定义大容量存储空间,不放过任何一个死机log;步骤简单省心,为您记录每个宝贵log;还在等什么,赶紧拿起耳机操作吧。
第一步:添加宏定义INCLUDE_GAIA_PANIC_LOG_TRANSFER
第二步:分配存储log的分区
在工程配置中查看目前工程用哪个分区文件
在目录下找这个使用的分区文件
默认的分区文件是有划分这部分功能的,没有的可以自行添加,不需要的也可以删除,添加时最好添加到rw_fs分区后面
第三步:设置panic(非必须步骤)
为了快速测试该功能,小编在一个单击按键处理事件中添加一个panic
同时为了让panic可以自动复位,小编把panic后的动作设为重启
完成以上,烧录后连上手机,单击按键就能死机了
第四步:取出log内容
这里可以接上线,用Python指令提取出来:apps0.extract_debug_partition()
但是我们不要线,不要线,要钱,钱~
这样就需要用到上一篇说到的APP,在C:\qtil\ADK_Toolkit_1.1.1.38_x64\apk路径下。安装后并打开,选择连接目标设备,连接完成之后,点击download panic log
这时弹出来的界面选择download
下载完成后,右上角就出现两个图标,一个是分享log,把log通过分享的方式发出(不分享找不到那个下载出来的文件╮(╯▽╰)╭)。目前小编建议用邮件方式发出,因为别的方式有可能发不出或更改了名字。第二个是清除log,用来删除耳机中已经记录的所有log消息(在未得到log文件之前,慎重点击)。完成这一步之后,你大概会觉得可能要换手机了,因为有点卡,emmmmm~
第五步:分析log
在上一步得到的log文件是一个.xed后缀的文件,这个文件需要Python调用脚本和工程里的.elf文件(在对应工程的depend_debug_qcc514x_qcc304x文件夹里)进行解析。
重点:.elf文件必须和当初烧到耳机里的软件的版本对应,重新编译的都不行。也就是说每次烧录完之后,最好要在工程中找到这个.elf文件,另存起来
提取log的指令其实和debug的指令差不多,只是换了个接口而已。这里直接放一个批处理指令给大家参考,大家直接修改对应的路径上去就好了
set PYTHOM_PATH=C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\Scripts\python.exe
set PYDBG_PATH=C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\Scripts\pydbg.py
set ELF_PATH=E:\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud\earbud\workspace\QCC3046-AA_DEV-BRD-R2-AA\depend_debug_qcc514x_qcc304x\earbud.elf
set XED_PATH=C:\Users\k\Desktop\earbuds_panic_log.xed
start cmd.exe /k %PYTHOM_PATH% %PYDBG_PATH% -d xed:%XED_PATH% -f apps1:%ELF_PATH%
第六步:查看log
运行批处理之后,如果正确就出现以下显示,输入apps,再按Tab建就能看到有多少log能看。每个panic事件为一个log,apps1e0为第一个保存的log,以此类推。
查看log也和debug指令差不多,只是前缀要改成对应的名称,例如我要看第二个panic事件的stack,就要输入apps1e1.statck(),这样我们就能看到panic出现在哪个函数了,其他指令以此类推。但保存的内容只有P1的registers, stack, memory, 和log。所以指令只能用和这些相关的。
以上是本期博文的全部内容,如有疑问请在博文下方评论留言,或者有什么想了解的都可以留言,我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。
多看文档,多上官网
多看文档,多上官网
多看文档,多上官网
参考文档:80-ch505-1_aa_using_the_debug_partition_application_note
评论
MQS
2021年11月19日
Biu~
2020年11月19日
QAQ123
2020年11月17日
Biu~
2020年11月16日
YUQI
2020年11月16日