大家是否还在连着线debug,一次次操作复现问题吗?是否还在努力回忆复现步骤的情形吗?是否还在为小几率死机而抓不到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的指令差不多,只是换了个接口而已。这里直接放一个批处理指令给大家参考,大家直接修改对应的路径上去就好了
第六步:查看log 运行批处理之后,如果正确就出现以下显示,输入apps,再按Tab建就能看到有多少log能看。每个panic事件为一个log,apps1e0为第一个保存的log,以此类推。 查看log也和debug指令差不多,只是前缀要改成对应的名称,例如我要看第二个panic事件的stack,就要输入apps1e1.statck(),这样我们就能看到panic出现在哪个函数了,其他指令以此类推。但保存的内容只有P1的registers, stack, memory, 和log。所以指令只能用和这些相关的。 来源:https://www.wpgdadatong.com/cn/blog/detail?BID=B2149
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2025-4-30 23:28 , Processed in 0.128318 second(s), 19 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.