Trace32 ICD ARM USB能实时Debug程序在手机中的运行情况,需要连接Trace32硬件才可以工作。但是,对于概率性的实际问题,借助Trace32 ICD ARM USB找到问题原因比较困难,因为不能确定手机什么时候Crash。
使用Trace32的WIN32版本,把手机Crash时的寄存器信息dump出来,就能在WIN32下定位到死在程序代码的那一行,非常类似于EMP平台的CHKARM工具。
本文介绍Trace32 Simulator for ARM工具。
Qualcomm QPST获取dump
手机死机时,按"#"键进入Download模式。
运行QPST/Memory Debug,制定数据传输端口。
按钮Get Regions显示要获取的dump信息。
按钮SaveTo保存dump数据,如:C:/dump。
Dump分析
打开Trace32 Simulator for ARM。
工作路径切换至dump存放目录,如:命令行中输入 cd C:/dump
命令行输入 do load_log 后回车。
根据屏幕上的提示,选择2.Call stack or memory compression log(.cmm file),然后回车。
根据屏幕上的提示,直接回车。
选中刚才dump出来的load.cmm文件并导入。
完成load.cmm导入后,在命令行输入 do load_rex_core 后回车。
Trace32定位到死机的代码行(高亮显示)。