Biu~笔记:高通蓝牙ADK(12)--离线log

       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

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

MQS

MQS

2021年11月19日
同样是5144我headset工程,运行后为什么提示这个啊 raise NotImplementedError("Unsupported chip version %s" % chip_version)
Biu~

Biu~

2020年11月19日
分区大小超过了是什么意思
QAQ123

QAQ123

2020年11月17日
分区大小超过了
Biu~

Biu~

2020年11月16日
你的现象应该要重新烧一下程序
YUQI

YUQI

2020年11月16日
请教一下,按照你的步骤配置,最后批处理的时候出现如下情况是怎么回事 This is Pydbg 0.7.1 Attaching to Device @ "xed:D:\YUQI\earbuds_panic_log.xed"... Traceback (most recent call last): File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\chip\chip_factory.py", line 21, in fry factory = factory_plugins[chip_version.major] KeyError: 108 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\Scripts\pydbg.py", line 144, in main() File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\Scripts\pydbg.py", line 141, in main PydbgFrontEnd.main_wrapper(shell=globals(), version=PYDBG_VERSION) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\front_end\base_front_end.py", line 93, in main_wrapper setup_ok = cls.main(cmdline_options, interactive, shell=shell) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\front_end\pydbg_front_end.py", line 567, in main allow_recovery=allow_recovery) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\front_end\pydbg_front_end.py", line 653, in _main allow_recovery=allow_recovery) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\front_end\pydbg_front_end.py", line 298, in multi_attach device_options["emulator_build"]) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\device\device_factory.py", line 258, in checked_attach target=target, emulator_build=emulator_build) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\device\device_factory.py", line 125, in attach device = DeviceAttacher._attach_via_xed(path) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\device\device_factory.py", line 196, in _attach_via_xed return XEDImporter().import_device(path) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\device\xed_importer.py", line 46, in import_device emulator_build=emulator_build) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\device\device_factory.py", line 38, in create chip = ChipFactory.fry(chip_version, access_cache_type) File "C:\qtil\ADK_Toolkit_1.1.1.38_x64\tools\pyenv37\lib\site-packages\csr\dev\hw\chip\chip_factory.py", line 23, in fry raise NotImplementedError("Unsupported chip version %s" % chip_version) NotImplementedError: Unsupported chip version 0x656c (Major: 0x6c, Minor: 0x6, Variant: 0x5) D:\YUQI>