SylixOS Crash 助手使用说明
一、原理
Crash 助手借助 xxx-elf-addr2line.exe 来分析一个地址对应的可执行文件的源码位置,以及函数名称。因此 Crash 助手分析的准确性由 xxx-elf-addr2line.exe 保证。
SylixOS 的 IDE 目录下包含所有 SylixOS 支持架构的 xxx-elf-addr2line.exe 文件,其目录如下:
二、使用方法
1、架构编译文件选择:
首先需要先根据当前的架构选择对应的 xxx-elf-addr2line.exe 文件,具体的文件位置见第一章原理中的目录图
2、可执行文件选择:
第二步需要分析对应的可执行文件。
如需要分析一个 ko 文件,然后就选择 IDE 中编译好的 ko 文件。如图所示:
这里需要注意:
不要选取 strip 下的文件,直接选择 release 目录或者 debug 目录下编译出的文件
3、找到当前分析的文件运行时的基地址:
- 如果是 ko 可执行文件,那么可以通过 “lsmod” 的方式去查看当前的可执行文件运行时的基地址,如图所示:
- 如果是 App 等文件,可以借助 SylixOS 下的 VPROC_MODULE_SHOW 环境变量去获取基地址,默认值为0,如图
此时,可以直接使用 shell 命令对环境变量进行赋值,如
VPROC_MODULE_SHOW=1
可以看到,开启了此环境变量后,每次运行应用程序都会打印出所有的 base 地址。
将上述获取到的基地址填入到 Crash 助手中即可。
4、分析地址
最后就是使用时,将跑飞的 PC 地址填入到 Crash 助手,然后点击”开始分析“按钮,就可以进行当前地址所对应的源码位置及函数名称的分析,如下图所示:
注意:第三步和第四步填入的地址需要是 16 进制,当然一般也都是 16 进制的。
另外,填入的 16 进制地址加不加 0x 均可,怎么方便怎么来
5、支持
如果此软件有使用 bug,欢迎邮件联系:wupengcheng@acoinfo.com