
[Android稳定性] 第026篇 [方法篇] 在windows平台安装Linux ramdump parser工具
iliuqi一、安装python工具
前往网站(https://www.python.org/downloads/)下载python安装包,python >= 3.6.8即可
- 安装python工具到一个目录,比如:C:\Python36
- 进入到C:\Python36\Scripts目录中,使用pip指令安装库
1
2pip install psutil
pip install pyelftools
二、获取linux ramdump parser工具
2.1 Opensource
vendor/qcom/opensource/tools
1 | git clone e https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/tools.git |
2.2 proprietary
vendor/qcom-proprietary/ramdump-parser
将下面这个目录的文件拷贝到目标目录
源目录:
vendor/qcom-proprietary/ramdump-parser/\
目标目录:
vendor/qcom/opensource/tools/linux-ramdump-parser-v2/extensions
2.3 整合
将第2.1和第2.2的工具进行整合,放在一个指定目录,比如 C:\tools
三、编写解析脚本
1 | set PYTHON3="c:\Python36\python.exe" |
参数:–force-hardware 后跟的是项目target名
对于target
,请查看board_def.py文件中是否有定义!
1 | tools/linux-ramdump-parser-v2/extensions/board_def.py |
如果没有,可以提case给高通咨询
四、编译工具链
linux ramdump parser工具需要三个工具,分别是gdb、nm以及objdump
4.1 gdb工具下载
aarch64-linux-gnu-gcc-gdb.exe is from linaro for 64bit dump for 32bit dump, arm-eabi-gdb.exe is the counterpart
可以在下面的链接中下载:
由于一些内核版本很高,导致低版本gdb无法正确解析vmlinux,所以尽可能使用版本比较高的gdb,可以下载下面这个
4.2 nm以及objdump下载
同样因为内核版本很高,gnu tools中的objdump和nm已经无法正常解析了。所以需要切换到llvm版本
这个工具可以在高通的QPM软件中进行下载
下载过程中,会由你选择安装目录,默认是在C:\Qualcomm\SnapdragonLLVMARM\16.5.2.0\bin
在这个目录下就可以看到我们需要的llvm-nm.exe
以及llvm-objdump.exe
4.3 工具链整合
将第4.1下载到的gdb
和4.2中下载的llvm-nm
以及llvm-objdump
放在一个目录下,比如tools/ramparser_utils/windows_utils/
下
五、增加local_setting.py
在如下目录中新增该文件,文件中指定工具链的地址
1 | tools/linux-ramdump-parser-v2/local_setting.py |
1 | #nm_path = "xxxxxxx" |