crash:overview

工具

平台Android10代码中包含crash工具,路径和内容如下:

calm.xia@shand20[12:15:35]:~/10_automotive/vendor/sprd/tools/crash$ tree -L 4
.
├── pycrash
│   ├── bin
│   │   ├── crash -> crash_arm64
│   │   ├── crash_arm
│   │   ├── crash_arm64
│   │   ├── crash_vmm
│   │   ├── crash_x86
│   │   ├── crash_x86_64
│   │   └── pycrash
│   ├── extensions
│   │   ├── arm
│   │   │   ├── dminfo.so
│   │   │   ├── echo.so
│   │   │   ├── eppic.so
│   │   │   ├── gcore.so
│   │   │   ├── snap.so
│   │   │   └── trace.so
│   │   ├── arm64
│   │   │   ├── dminfo.so
│   │   │   ├── echo.so
│   │   │   ├── eppic.so
│   │   │   ├── gcore.so
│   │   │   ├── snap.so
│   │   │   └── trace.so
│   │   ├── dminfo.so
│   │   ├── echo.so
│   │   ├── eppic.so
│   │   ├── gcore.so
│   │   ├── snap.so
│   │   ├── trace.so
│   │   └── x86_64
│   │       ├── dminfo.so
│   │       ├── echo.so
│   │       ├── eppic.so
│   │       ├── gcore.so
│   │       ├── snap.so
│   │       └── trace.so
│   ├── install
│   ├── readme
│   └── utils
│       └── readelf
└── Usage

7 directories, 35 files

可以看到集成了ARM和X86平台32位和64位的crash工具,且默认crash工具是指向crash_arm64。


使用方法

查看crash工具的使用方法:

calm.xia@shand24[11:24:37]:~/avm0514/ylog/SYSDUMP/1$ cat ~/10_automotive/vendor/sprd/tools/crash/Usage

For ARM(7731, 9630, 9832 ..)
crash_arm -m phys_base=0x80000000 vmlinux sysdump.core --cpus 8

For ARM64(9850, 9860)
crash_arm64 -m phys_offset=0x80000000 vmlinux sysdump.core --cpus 8

For X86_64(9851, 9861, iSharkL2)
crash_x86_64 -m phys_base=0x34200000 vmlinux sysdump.core --cpus 8
  • 注意点:
    从使用方法可知,我们需要提前准备好一些材料:vmlinxsysdump.core文件。
    vmlinux从当前Android版本out目录获取;sysdump.core 是设备发生故障时dump到SD卡的文件(dump的方式每个平台会不一样,这里指unisoc平台)。

  • Tips:
    效率:很多时候我们的开发环境是交叉的:windows上日常办公+Linux开发调试(远程服务器),由于dump文件很大直接传输到Linux服务器会很耗时,建议将dump文件压缩后在传到Linux服务器解压分析。
    给个我实际遇到的情况,感受一下~:

压缩 Size Time
YES 0.99GB about 2m20s
NO 3.83GB about 50m
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章