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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章