高通平台ramdump-parser 工具

1. 获取GNU-TOOLS

aosp-caf 源码目录下:

aosp-caf/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin目录下,
或者:
aosp-caf/out/.path 目录下:

aosp-caf/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin$ ls aarch64-linux-android
-*
aarch64-linux-android-addr2line  aarch64-linux-android-gcc-ar      aarch64-linux-android-ld       aarch64-linux-android-ranlib
aarch64-linux-android-ar         aarch64-linux-android-gcc-nm      aarch64-linux-android-ld.bfd   aarch64-linux-android-readelf
aarch64-linux-android-as         aarch64-linux-android-gcc-ranlib  aarch64-linux-android-ld.gold  aarch64-linux-android-size
aarch64-linux-android-c++filt    aarch64-linux-android-gcov        aarch64-linux-android-nm       aarch64-linux-android-strings
aarch64-linux-android-dwp        aarch64-linux-android-gcov-tool   aarch64-linux-android-objcopy  aarch64-linux-android-strip
aarch64-linux-android-elfedit    aarch64-linux-android-gprof       aarch64-linux-android-objdump

自行下载GNU-Tools:

git clone https://android-git.linaro.org/git/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9-linaro.git

或者通过Linaro Releases 下载 toolchain,请注意下载正确的对应版本

https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/

2. 获取ramdump-parser

aosp-caf 源码目录下:

aosp-caf/vendor/qcom/opensource/tools/linux-ramdump-parser-v2

自行下载ramdump-parser:

git clone https://gitlab.com/Codeaurora/platform_vendor_qcom-opensource_tools.git
git clone https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/tools.git

3. 修改linux-ramdump-parser-v2/local_settings.py

参考以下内容修改:
将gdb,nm,objdump和ramdump解析工具放到下面路径中,需要区分32/64位.

import parser_util,os,sys
gdb_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"
 
gdb64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"

4. 编写执行脚本

将gdb,nm,objdump和ramdump解析工具放到下面路径中,需要区分32/64位.

# ramdump-parser.sh
 
#! /bin/bash
 
echo ""
echo "Start ramdump parser.."
 
local_path=$PWD
ramdump=$local_path/
vmlinux=$local_path/vmlinux
out=$local_path/out
 
gdb=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb
nm=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm
objdump=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump

ramparse_dir=~/tools/ramdump/tools/linux-ramdump-parser-v2
########################################################################################
 
echo "cd $ramparse_dir"
cd $ramparse_dir
echo ""
 
echo -e "python3 ramparse.py --force-hardware msmnile --auto-dump ./ -x -g $gdb -n $nm -j $objdump -v $vmlinux -o $out"
echo ""
 
# python 3.5
python3 $ramparse --force-hardware msmnile --auto-dump ./ -x -g $gdb -n $nm -j $objdump -v $vmlinux -o $out
 
cd $local_path
echo "out: $out"
echo ""
exit 0

5. 输出解析结果

将Ramdump + vmlinux文件放在同一级目录:

$ ls
CD_BTDDR.BIN  DCC_CFG.BIN   DDRCS1_0.BIN   FSM_CTRL.BIN  IPA_SEQ.BIN   MSGRAM11.BIN  MSGRAM2.BIN  MSGRAM8.BIN   PMIC_PON.BIN  smmu_s1_fault.txt
CD_BTIMM.BIN  DCC_SRAM.BIN  DDRCS1_1.BIN   FSM_STS.BIN   IPASHRAM.BIN  MSGRAM12.BIN  MSGRAM3.BIN  MSGRAM9.BIN   PMON_HIS.BIN  vmlinux
CD_SHIMM.BIN  DDRCS0_0.BIN  DDRCS1_2.BIN   IPA_GSI.BIN   IPA_SRAM.BIN  MSGRAM13.BIN  MSGRAM4.BIN  OCIMEM.BIN    rdp
CD_STRCT.BIN  DDRCS0_1.BIN  DDRCS1_3.BIN   IPA_HRAM.BIN  load.cmm      MSGRAM14.BIN  MSGRAM5.BIN  out           RST_STAT.BIN
CODERAM.BIN   DDRCS0_2.BIN  DDR_DATA.BIN   IPA_IU.BIN    MSGRAM0.BIN   MSGRAM15.BIN  MSGRAM6.BIN  PART_BIN.BIN  run.sh
DATARAM.BIN   DDRCS0_3.BIN  dump_info.txt  IPA_MBOX.BIN  MSGRAM10.BIN  MSGRAM1.BIN   MSGRAM7.BIN  PIMEM.BIN     SHRM_MEM.BIN

执行ramdump-parser.sh脚本:

Start ramdump parser..
/opt/linux-ramdump-parser-v2

    [1/66] --sched-info ... 1.996608s
    [2/66] --cbmem ... 0.066669s
    [3/66] --clock-dump ... 3.496971s
    [4/66] --print-svm-vcpu-ctx ... 0.000497s
    [5/66] --cpr3-info ... 0.080281s
    [6/66] --cpr-info ... 0.034651s
    [7/66] --cpu-state ... 0.015171s
    [8/66] --ddr-compare ... 2.181965s
    [9/66] --check-for-watchdog ... 0.024302s
    [10/66] --watchdog ... 3.379377s
    [11/66] --parse-debug-image ... 1.904012s
    [12/66] --dmesg ... 0.523119s
    [13/66] --dtb ... 0.012884s
    [14/66] --print-f2fs ... 2.409996s
    [15/66] --print-filetracking ... 229.818691s
    [16/66] --print-tasks ... 3.656492s
    [17/66] --print-tasks-timestamps ... 0.008771s
    [18/66] --check-for-panic ... 0.021907s
    [19/66] --hotplug ... 0.606848s
    [20/66] --hyp-log ... FAILED!  0.000963s
    [21/66] --print-iommu-pg-tables ... 28.634773s
    [22/66] --ipa ... 13.098149s
    [23/66] --ipc_logging ... 0.119332s
    [24/66] --print-irqs ... 1.744312s
    [25/66] --kbootlog ... 0.034949s
    [26/66] --print-kconfig ... 0.001530s
    [27/66] --l1-compare ... 0.000360s
    [28/66] --lockdep-heldlocks ... 0.000016s
    [29/66] --properties ... found process init 1.947400s
    [30/66] --logcat ... found process logd
            found process init 1.229178s
    [31/66] --logcat-mini ... FAILED!  0.021597s
    [32/66] --logcat-v2 ... FAILED!  0.367746s
    [33/66] --print-zram ... 1.469001s
    [34/66] --lpm ... 6.359503s
    [35/66] --print-mdssinfo ... FAILED!  2.530681s
    [36/66] --print-memstat ... 0.290634s
    [37/66] --print-memory-info ... 1.025709s
    [38/66] --mmcdoctor ... 0.024299s
    [39/66] --modules_table ... FAILED!  0.533833s
    [40/66] --dump-page-tables ... 0.000180s
    [41/66] --print-pagealloccorruption ... 0.000016s
    [42/66] --print-pagetracking ... FAILED!  0.390792s
    [43/66] --print-pagetypeinfo ... 0.912549s
    [44/66] --pstore ... 0.000029s
    [45/66] --qrtr-ports ... 2.015823s
    [46/66] --regulator ... 6.260499s
    [47/66] --print-reserved-mem ... 0.413587s
    [48/66] --print-cma-areas ... 4.174209s
    [49/66] --print-softirq-stat ... 0.203490s
    [50/66] --print-qsee-log ... 0.337449s
    [51/66] --rm-log ... FAILED!  0.001325s
    [52/66] --check-rodata ... 0.110045s
    [53/66] --print-rtb ... 0.088392s
    [54/66] --print-runqueues ... 2.967548s
    [55/66] --smmu-s1-fault ... Unknown message disregarded, line says:         non-coherent table walk
				Unknown message disregarded, line says:         (IDR0.CTTW overridden by FW configuration)
				Unknown message disregarded, line says:         stream matching with 6 register groups
				Unknown message disregarded, line says:         non-coherent table walk
				Unknown message disregarded, line says:         (IDR0.CTTW overridden by FW configuration)
				Unknown message disregarded, line says:         stream matching with 95 register groups
    0.089600s
    [56/66] --spm ... FAILED!  0.129877s
    [57/66] --thermal-info ... 3.124397s
    [58/66] --thermal-temp ... 0.044073s
    [59/66] --timer-list ... 1.348593s
    [60/66] --ubwcp ... 0.044256s
    [61/66] --uevent ... 1.204906s
    [62/66] --vm-minidump-sample ... FAILED!  0.001175s
    [63/66] --print-vmalloc ... 2.237236s
    [64/66] --print-vmstats ... 6.545621s
    [65/66] --wakeup ... 1.427594s
    [66/66] --print-workqueues ... 1.106207s

     out: /home/test/work/temp/Port_COM19/out

最终解析结果如下:

$ ls
anomalies.json                                                                                cprinfo.txt
arm_iommu_domain_00__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF96579C5000.txt                     DDRCacheCompare.txt
arm_iommu_domain_01__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9657A7F000.txt                     devicetree.dtb
arm_iommu_domain_02__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9699E8F000.txt                     dmesg_TZ.txt
arm_iommu_domain_03__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF966931D000.txt                     f2fs_info.txt
arm_iommu_domain_04__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF96A36DB000.txt                     fcm.bin
arm_iommu_domain_05__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9655A1D000.txt                     file_tracking.txt
arm_iommu_domain_06__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF967AF98000.txt                     hotplug.txt
arm_iommu_domain_07__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF967AFCF000.txt                     ipalog.txt
arm_iommu_domain_08_soc_qcom_msm_audio_apr_qcom_msm_audio_ion_0xFFFFFF9683926000.txt          ipc_logging
arm_iommu_domain_09__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9686BBA000.txt                     kconfig.txt
arm_iommu_domain_10__qcom_msm_npu_0xFFFFFF9687534000.txt                                      kernel_boot_log.txt
arm_iommu_domain_11_aa_qcom_vidc_secure_pixel_cb_0xFFFFFF9687A84000.txt                       kva_output.txt
arm_iommu_domain_12_aa_qcom_vidc_secure_bitstream_cb_0xFFFFFF9687A81000.txt                   l1_cache.txt
arm_iommu_domain_13_aa_qcom_vidc_secure_non_pixel_cb_0xFFFFFF9687A7C000.txt                   launch_t32.sh
arm_iommu_domain_14_aa_qcom_vidc_non_secure_cb_0xFFFFFF9687A78000.txt                         logcat.bin
arm_iommu_domain_15_a_ssusb_0xFFFFFF9688871000.txt                                            lpm.txt
arm_iommu_domain_16___0xFFFFFF96888BA000.txt                                                  memory.txt
arm_iommu_domain_17___0xFFFFFF96888AD000.txt                                                  mem_stat.txt
arm_iommu_domain_18_a_ssusb_0xFFFFFF9688F01000.txt                                            modules_table.txt
arm_iommu_domain_19__c_qcom_qupv_geni_se_0xFFFFFF968967E000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x0
arm_iommu_domain_20_cc_qcom_qupv_geni_se_0xFFFFFF9689DF2000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x1
arm_iommu_domain_21_ac_qcom_qupv_geni_se_0xFFFFFF9689DEF000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x2
arm_iommu_domain_22__c_qcom_qupv_geni_se_0xFFFFFF968A9D4000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x3
arm_iommu_domain_23_soc_qcom_cam_smmu_msm_cam_smmu_ife_cp_0xFFFFFF968AD69000.txt              MSM_DUMP_DATA_L1_DATA_CACHE_0x4
arm_iommu_domain_24_soc_qcom_cam_smmu_msm_cam_smmu_lrme_0xFFFFFF968AD63000.txt                MSM_DUMP_DATA_L1_DATA_CACHE_0x5
arm_iommu_domain_25_soc_qcom_cam_smmu_msm_cam_smmu_fd_0xFFFFFF968AD60000.txt                  MSM_DUMP_DATA_L1_DATA_CACHE_0x6
arm_iommu_domain_26_soc_qcom_cam_smmu_msm_cam_smmu_cpas_cdm_0xFFFFFF968AD5A000.txt            MSM_DUMP_DATA_L1_DATA_CACHE_0x7
arm_iommu_domain_27_soc_qcom_cam_smmu_msm_cam_smmu_icp_0xFFFFFF968B49D000.txt                 MSM_DUMP_DATA_L1_INST_CACHE_0x0
arm_iommu_domain_28_soc_qcom_cam_smmu_msm_cam_smmu_jpeg_0xFFFFFF968BC47000.txt                MSM_DUMP_DATA_L1_INST_CACHE_0x1
arm_iommu_domain_29_soc_qcom_cam_smmu_msm_cam_smmu_ife_0xFFFFFF968BC42000.txt                 MSM_DUMP_DATA_L1_INST_CACHE_0x2
arm_iommu_domain_30_soc_qcom_smmu_sde_unsec_cb_0xFFFFFF968BC38000.txt                         MSM_DUMP_DATA_L1_INST_CACHE_0x3
arm_iommu_domain_31_soc_qcom_smmu_sde_sec_cb_0xFFFFFF968B434000.txt                           MSM_DUMP_DATA_L1_INST_CACHE_0x4
arm_iommu_domain_32__qcom_ethernet_ethqos_emb_smmu_0xFFFFFF968BD90000.txt                     MSM_DUMP_DATA_L1_INST_CACHE_0x5
arm_iommu_domain_33__ca_qcom_kgsl_iommu_gfx_d_secure_0xFFFFFF968FBAB000.txt                   MSM_DUMP_DATA_L1_INST_CACHE_0x6
arm_iommu_domain_34__ca_qcom_kgsl_iommu_gfx_d_secure_0xFFFFFF968FBA9000.txt                   MSM_DUMP_DATA_L1_INST_CACHE_0x7
arm_iommu_domain_35__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF968FBA6000.txt                     page_tables.txt
arm_iommu_domain_36__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF968FBA4000.txt                     pagetypeinfo.txt
arm_iommu_domain_37__c_a_qcom_gmu_0xFFFFFF968FB97000.txt                                      Properties.txt
arm_iommu_domain_38__c_a_qcom_gmu_0xFFFFFF968FB92000.txt                                      qrtr_port.txt
arm_iommu_domain_39_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05AE000.txt  qsee_log.txt
arm_iommu_domain_40_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05AA000.txt  regulator.txt
arm_iommu_domain_41_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05A6000.txt  reserved_mem.txt
arm_iommu_domain_42_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05A1000.txt  roareadiff.txt
arm_iommu_domain_43_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A059D000.txt  scratch.bin
arm_iommu_domain_44_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A0598000.txt  sde_evtlog.txt
arm_iommu_domain_45_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A0594000.txt  sde_regdump.txt
arm_iommu_domain_46_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969119A000.txt  sde_reglog.txt
arm_iommu_domain_47_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969076E000.txt  sdi_dump_table.txt
arm_iommu_domain_48_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969074E000.txt  secure_world_core0_regs.cmm
arm_iommu_domain_49_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF9691113000.txt  secure_world_core1_regs.cmm
arm_iommu_domain_50_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96AA9FA000.txt  secure_world_core2_regs.cmm
arm_iommu_domain_51_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF9690787000.txt  secure_world_core4_regs.cmm
arm_iommu_domain_52_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96907B7000.txt  secure_world_core5_regs.cmm
arm_iommu_domain_53_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96AAEC2000.txt  secure_world_core6_regs.cmm
arm_iommu_domain_54_soc_ipa_smmu_uc_0xFFFFFF96AAF5B000.txt                                    secure_world_core7_regs.cmm
arm_iommu_domain_55_soc_ipa_smmu_wlan_0xFFFFFF96AAF50000.txt                                  spm.txt
arm_iommu_domain_56_soc_ipa_smmu_ap_0xFFFFFF96AAF2C000.txt                                    t32_config.t32
ClockDumps.txt                                                                                t32_startup_script.cmm
cma_report_adsp_region.txt                                                                    tasks_highlight.txt
cma_report_cdsp_region.txt                                                                    tasks_sched_stats
cma_report_dma_contiguous_default_area.txt                                                    tasks.txt
cma_report_mem_dump_region.txt                                                                thermal_info
cma_report_qseecom_ta_region.txt                                                              timerlist.txt
cma_report_secure_display_region.txt                                                          tmc-etf.bin
cma_report_simple.txt                                                                         tmc-etf-swao.bin
cma_report_sp_region.txt                                                                      tmc_etf_swao.txt
cma_report_user_contig_region.txt                                                             tmc_etf.txt
core0_regs.cmm                                                                                tmc-etr.bin
core1_regs.cmm                                                                                tmc_etr.txt
core2_regs.cmm                                                                                uevent.txt
core4_regs.cmm                                                                                vmalloc.txt
core5_regs.cmm                                                                                vmstats.txt
core6_regs.cmm                                                                                vm_vcpu_context.txt
core7_regs.cmm                                                                                wakeup_resource.txt
cpr3_info.txt
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值