使用如下命令获取qcom工具:

ljj@ljj-ThinkCentre-M83:~/git/qcom_tools/ramdump$ git clone git://codeaurora.org/quic/la/platform/vendor/qcom-opensource/tools
正克隆到 'tools'...
remote: Counting objects: 7400, done.
remote: Compressing objects: 100% (550/550), done.
remote: Total 7400 (delta 315), reused 0 (delta 0)
接收对象中: 100% (7400/7400), 1.18 MiB | 0 bytes/s, 完成.
处理 delta 中: 100% (5365/5365), 完成.
检查连接... 完成。

  

将如下内容保存成shell脚本至/home/ljj/shared/tools/ 路径下,加入环境变量(~/.bashrc中,加入一行:export PATH=/home/ljj/shared/tools/:$PATH)。(其中force-hardware sdm845,可以根据平台不同修改命令)。

中间文件的路径是在code源码路径下(这个是64位的,32位的现在还有平台用么?):

gdb:prebuilts/gdb/linux-x86/bin

nm:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin

objdump:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin

# 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=/media/ljj/2T/IME/prebuilts/gdb/linux-x86/bin/gdb
nm=~/tools/gnu-tools/aarch64-linux-android-4.9/bin/aarch64-linux-android-nm
objdump=~/tools/gnu-tools/aarch64-linux-android-4.9/bin/aarch64-linux-android-objdump # git clone git://codeaurora.org/quic/la/platform/vendor/qcom-opensource/tools
ramparse_dir=~/git/qcom_tools/ramdump/tools-2/tools/linux-ramdump-parser-v2
######################################################################################## echo "cd $ramparse_dir"
cd $ramparse_dir
echo "" echo -e "python ramparse.py -v $vmlinux -g $gdb -n $nm -j $objdump -a $ramdump -o $out -x"
#echo -e "python ramparse.py -v $vmlinux -n $nm -j $objdump -a $ramdump -o $out -x"
echo "" # python 2.7.5
#python ramparse.py -v $vmlinux -g $gdb -n $nm -j $objdump -a $ramdump -o $out -x
python ramparse.py --v $vmlinux -g $gdb -n $nm -j $objdump -a $ramdump -o $out -x --force-hardware sdm845
#python ramparse.py -v $vmlinux -n $nm -j $objdump -a $ramdump -o $out -x cd $local_path
echo "out: $out"
echo ""
exit 0

  

另外,针对sdm845平台的解析脚本,一定要创建一个local_settings.py,在ramparse.py同一级目录下。因为脚本中会import,避免报错(这个里面其实可以随便写,因为它也是为了提供gdb等工具的路径变量的)

gdb64_path = "gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gdb"
nm64_path = "gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-nm"
objdump64_path = "gcc/linux-x86/aarch64/aarch64-linux-android4.9/bin/aarch64-linux-android-objdump" '''
gdb_path - absolute path to the gdb tool for the ramdumps
nm_path - absolute path to the gdb tool for the ramdumps
gdb64_path - absolute path to the 64-bit gdb tool for the ramdumps
nm64_path - absolute path to the 64-bit nm tool for the ramdumps
'''

 

将vmlinux放到 ramdump文件夹内,然后在ramdump文件的目录下执行命令:

ljj@ljj-ThinkCentre-M83:~/shared/#504/ramdump$ ramdunmp-parser.sh 

Start ramdump parser..
cd /home/ljj/git/qcom_tools/ramdump/tools-2/tools/linux-ramdump-parser-v2 python ramparse.py -v /home/ljj/shared/#504/ramdump/vmlinux -g /media/ljj/2T/IME/prebuilts/gdb/linux-x86/bin/gdb -n /home/ljj/tools/gnu-tools/aarch64-linux-android-4.9/bin/aarch64-linux-android-nm -j /home/ljj/tools/gnu-tools/aarch64-linux-android-4.9/bin/aarch64-linux-android-objdump -a /home/ljj/shared/#504/ramdump/ -o /home/ljj/shared/#504/ramdump/out -x [1/41] --sched-info ... 0.061917s
[2/41] --cbmem ... 0.059544s
[3/41] --clock-dump ... 1.400513s
[4/41] --cpr3-info ... NOTE: 'kryo_regulator_list' list not found to extract kryo_addr information
0.053601s
[5/41] --cpr-info ... 0.027354s
[6/41] --cpu-state ... 0.032388s
[7/41] --ddr-compare ... 0.376673s
[8/41] --check-for-watchdog ... 0.018749s
[9/41] --watchdog ... 1.275302s
[10/41] --parse-debug-image ... FAILED! 18.466207s
[11/41] --dmesg ... 0.460676s
[12/41] --print-iommu-pg-tables ... 0.097094s
[13/41] --print-ipc-logging ... 309.866953s
[14/41] --print-irqs ... 0.917176s
[15/41] --print-kconfig ... 0.002269s
[16/41] --l1-compare ... FAILED! 0.000342s
[17/41] --lpm ... 1.697760s
[18/41] --print-mdpinfo ... FAILED! 0.759938s
[19/41] --print-memstat ... 2.761667s
[20/41] --print-memory-info ... 0.456092s
[21/41] --mmcdoctor ... 1.219992s
[22/41] --dump-page-tables ... 0.000102s
[23/41] --print-pagealloccorruption ... 0.000795s
[24/41] --print-pagetracking ... 0.058347s
[25/41] --print-pagetypeinfo ... 0.374384s
[26/41] --pstore ... 0.593554s
[27/41] --print-reserved-mem ... 0.063802s
[28/41] --print-cma-areas ... 25.059915s
[29/41] --print-softirq-stat ... 0.056983s
[30/41] --check-rodata ... FAILED! 0.082407s
[31/41] --print-rtb ... 3.223726s
[32/41] --print-runqueues ... 1.166328s
[33/41] --spm ... FAILED! 0.057651s
[34/41] --print-tasks ... 0.541873s
[35/41] --print-tasks-timestamps ... 0.323309s
[36/41] --check-for-panic ... 0.014723s
[37/41] --thermal-info ... 0.293565s
[38/41] --timer-list ... 0.833970s
[39/41] --print-vmalloc ... 1.159435s
[40/41] --print-vmstats ... 0.667759s
[41/41] --print-workqueues ... 0.455242s out: /home/ljj/shared/#504/ramdump/out

可以在目录下找到out文件夹,其中就是解析出来的文件。

然后接下来才是最痛苦的,泡杯茶,吃颗糖,慢慢看吧~ XD

Qcom rampdump解析工具使用的更多相关文章

  1. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  2. Json解析工具Jackson(使用注解)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...

  3. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

  4. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  5. (转)AVI文件格式解析+AVI文件解析工具

    AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio Video Interleaved的缩写)是一 ...

  6. XML解析方式与解析工具

    DOM解析原理: 1)JAXP (oracle-Sun公司官方) 2)JDOM工具(非官方) 3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j) ....... SAX解析原 ...

  7. [开源]C#二维码生成解析工具,可添加自定义Logo (转)

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  8. JSON 解析工具的封装(Java)

    JSON 解析工具的封装(Java) 一直想有一个属于自己的JSON工具,今天终于弄好了..... 1.添加pom依赖包 <!--json解析--> <dependency> ...

  9. TableML-GUI篇(Excel编译/解析工具)

    项目情况 本文接上篇TableML Excel编译/解析工具,本文主要介绍GUI工具的使用,及配置项,如果你想了解此工具更加详细的说明,请阅读上篇文章. 项目地址:https://github.com ...

随机推荐

  1. 使用Optional,不再头疼NPE

    前言 在 Java 语言开发中,可能大多数程序员遇到最多的异常就是 NullPointException 空指针异常了.这个当初语言的开发者"仅仅因为这样实现起来更容易"而允许空引 ...

  2. [hdu5379 Mahjong tree]dfs计数

    题意:给n个节点的树编号1-n,一个节点唯一对应一种编号,要求编完号的树满足如下性质:所有节点的儿子的编号是连续的,对一棵子树,它包含的所有节点的编号也是连续的.连续的意思是把所有数排序后是一段连续的 ...

  3. flink优化总结

    一.高性能Flink SQL优化技巧 1.Group Aggregate优化技巧 开启MicroBatch或MiniBatch(提升吞吐) MicroBatch和MiniBatch都是微批处理,只是微 ...

  4. flink入门学习

    Flink学习笔记 一.简介 1.定义: ​ 针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.. 2.应用场景: ​ 流数据:把所有任务当成流来处理,处理观察和分析连续事件产生的数 ...

  5. 如何让html引用公共布局(多个html文件公用一个header.html和footer.html)

    如何实现多个.html静态页,引用同一个header.html和footer.html文件? 直接上代码: 公共头部文件:header.html //不用写标准的html文档格式 <div> ...

  6. (mysql)数据库笔记

    一.数据库的特点: a.实现数据共享  b.采用特定的数据类型. c.具有较高的数据独立性 d.具有统一的数据控制功能. 二.mysql的优势: a.速度:运行速度快 b.价格:mysql对多数个人来 ...

  7. Dotnet core使用JWT认证授权最佳实践(二)

    最近,团队的小伙伴们在做项目时,需要用到JWT认证.遂根据自己的经验,整理成了这篇文章,用来帮助理清JWT认证的原理和代码编写操作. 第一部分:Dotnet core使用JWT认证授权最佳实践(一) ...

  8. ketchup 注册中心consul使用

    ketcup  git地址:https://github.com/simple-gr/ketchup consul 安装 1.docker pull consul 2.docker run --nam ...

  9. 弹性式数据集RDD

    弹性式数据集RDD ​ 一.RDD简介二.创建RDD        2.1 由现有集合创建        2.2 引用外部存储系统中的数据集        2.3 textFile & who ...

  10. python3.x 基础七:面向对象进阶

    类的高级方法: 1.静态方法:在类方法前增加关键字@staticmethod,将普通方法变成静态方法,不能再次传值,不能访问实例变量或者类变量,与类的关系仅仅是通过类名进行调用 2.类方法:在类方法前 ...