高通Q+A平台 android gcore解析环境搭建
QNX+LA平台在运行过程中可以在android发生crash的时候生成core文件,本文将会介绍如何搭建环境解析gcore文件.
获取gcore文件
在异常情况下或者LA侧手动触发kernel panic的方式获得gcore文件,这个文件通常位于qnx的/var/qnxlogs目录下,完整的文件大小为1.5GB左右(依据你实际分配给LA的内存大小决定)。名字一般为:la_guestdump.gcore.gz
获取qvm_dump_parser工具
这个工具位于qnx源码目录apps/qnx_ap/tools/debug/analyzer_tools/ramdump_parser/qvm_dump_parser/host/linux/x86_64
使用qvm_dump_parser解析gcore文件
指令使用方式:
ubuntu:~/workspace/ramdump$ ./qvm_dump_parser -p la_guestdump.gcore.gz -o output/
Attempting to decompress the gcore zip file.
Attempting to generate the OCIMEM and RESET_INFO binary files.
Attempting to generate the DDR binary files. Takes 2-3 mintues. Please wait!!
Created DDR file 'DDR_0.BIN'
Created DDR file 'DDR_1.BIN'
Created DDR file 'DDR_2.BIN'
Created DDR file 'DDR_3.BIN'
Created DDR file 'DDR_4.BIN'
qvm_dump_parser took about 68.27865 seconds
准备ramdump解析脚本
这些文件通常位于android的源码目录下:
PC:~/workspace/lagvm/LINUX/android/vendor/qcom/opensource/tools$ ls
dcc_parser docs ipc_logging linux-ramdump-parser-v2 minidump
准备toolchain
可以通过Linaro Releases 下载 toolchain,请注意下载正确的对应版本:
root@ubuntu:~/ramdump/toolchain$ ls
gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz
root@ubuntu:~/ramdump/toolchain$
修改local_settings.py
参考下面的样例修改
root@ubuntu:~/ramdump$ ls linux-ramdump-parser-v2/local_settings.py
linux-ramdump-parser-v2/local_settings.py
root@ubuntu:~/ramdump$ cat linux-ramdump-parser-v2/local_settings.py
import parser_util,os,sys
gdb_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"gdb64_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm64_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump64_path = "~/ramdump/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"
解析gcore文件生成输出结果
使用指令:
python2.7 linux-ramdump-parser-v2/ramparse.py --vmlinux output/vmlinux --auto-dump output/ --force-hardware msmnile -x --dmesg --ipc-skip --dump-ftrace -o parser_output/
root@ubuntu:~/ramdump$ python2.7 linux-ramdump-parser-v2/ramparse.py --vmlinux output/vmlinux --auto-dump output/ --force-hardware msmnile -x --dmesg --ipc-skip --dump-ftrace -o parser_output/[1/46] --sched-info ... 0.325290s[2/46] --cbmem ... 0.074428s[3/46] --clock-dump ... 0.796523s[4/46] --cpr3-info ... NOTE: 'kryo_regulator_list' list not found to extract kryo_addr information
0.070664s[5/46] --cpr-info ... 0.040970s[6/46] --cpu-state ... 0.061613s[7/46] --ddr-compare ... 2.797104s[8/46] --check-for-watchdog ... 0.027185s[9/46] --watchdog ... FAILED! 3.434677s[10/46] --parse-debug-image ... 15.624387s[11/46] --dmesg ... 0.478022s[12/46] --print-filetracking ... 538.393242s[13/46] --dump-ftrace ... 0.000149s[14/46] --print-iommu-pg-tables ... FAILED! 1.074231s[15/46] --print-ipc-logging ... Skipping IPC log extraction. 0.000034s[16/46] --print-irqs ... 1.258463s[17/46] --print-kconfig ... 0.008418s[18/46] --l1-compare ... 0.000442s[19/46] --lockdep-heldlocks ... 0.000082s[20/46] --logcat ... 10.388355s[21/46] --lpm ... 0.231866s[22/46] --print-mdpinfo ... 0.085260s[23/46] --print-memstat ... FAILED! 0.389625s[24/46] --print-memory-info ... 0.805391s[25/46] --mmcdoctor ... FAILED! 0.000432s[26/46] --dump-page-tables ... 0.000225s[27/46] --print-pagealloccorruption ... 0.000069s[28/46] --print-pagetracking ... 0.096157s[29/46] --print-pagetypeinfo ... 0.904282s[30/46] --pstore ... FAILED! 0.274362s[31/46] --print-reserved-mem ... 0.104845s[32/46] --print-cma-areas ... FAILED! 4.287186s[33/46] --print-softirq-stat ... 0.112831s[34/46] --print-qsee-log ... 0.072410s[35/46] --check-rodata ... FAILED! 0.816940s[36/46] --print-rtb ... 0.049366s[37/46] --print-runqueues ... 2.128628s[38/46] --spm ... 0.000399s[39/46] --print-tasks ... 4.178147s[40/46] --print-tasks-timestamps ... 0.687941s[41/46] --check-for-panic ... 0.044627s[42/46] --thermal-info ... 0.481725s[43/46] --timer-list ... 1.177844s[44/46] --print-vmalloc ... 3.291382s[45/46] --print-vmstats ... 1.485176s[46/46] --print-workqueues ... 0.982326s
解析得到的内容:
root@ubuntu:~/ramdump/parser_output$ ls
ClockDumps.txt cprinfo.txt l1_cache.txt mem_stat.txt spm.txt tasks_sched_stats1.txt tasks_sched_stats6.txt tmc-etf-swao.bin
cma_report_dma_contiguous_default_area.txt DDRCacheCompare.txt launch_t32.sh page_tables.txt t32_config.t32 tasks_sched_stats2.txt tasks.txt tmc-etr.bin
cma_report_simple.txt dmesg_TZ.txt logcat.bin qsee_log.txt t32_startup_script.cmm tasks_sched_stats3.txt thermal_info.txt vmalloc.txt
console_logs.txt file_tracking.txt lpm.txt reserved_mem.txt tasks_highlight.txt tasks_sched_stats4.txt timerlist.txt
cpr3_info.txt kconfig.txt memory.txt roareadiff.txt tasks_sched_stats0.txt tasks_sched_stats5.txt tmc-etf.bin
高通Q+A平台 android gcore解析环境搭建相关推荐
- Android图形合成和显示系统---基于高通MSM8k MDP4平台
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...
- 高通Q+A Virtio hypervisor touch框架介绍(share-device)
背景 大家都知道现在高通芯片在汽车行业的座舱域运用比较热门,但是这种现象不是突然冒出来的,高通最早在2015年左右就开始推广他们的第一代座舱芯片820A.而在2018年左右开始推广他们的第二代产品(6 ...
- 高通5G智能平台概述
高通5G智能平台概述 高通 android 智能手机解决方案的软件包括两个部分 以linux 操作系统为基础的 android 系统 以 L4,REX为基础的 Modem 部分 在高通系列的架构中,一 ...
- 智能座舱更看重「性能冗余」,4家中国供应商领跑高通两代平台
高通8155,未必是智能座舱的真正王者,但至少在当下,是所有车企可以拿得出手吸引消费者的,为数不多的筹码.而到了明年,5nm的高通第四代座舱平台8295也有机会延续8155的强势地位. 要知道,在国内 ...
- Unity 高通AR发布到Android发生黑屏
这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...
- 基于Eclipse平台的Android OpenCV开发环境搭建
基于Eclipse平台的Android OpenCV开发环境搭建 作者:雨水, 日期:2016-1-31,CSDN博客:http://blog.csdn.net/gobitan 摘要:本文主要记录了如 ...
- Android Studio开发环境搭建准备
Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发 ...
- Unity打包基于Android的apk环境搭建总结
Unity打包基于Android的apk环境搭建总结 资源准备 操作步骤 总结反馈 资源准备 配置Unity打包Android需要3大部分资源准备: 1.Unity准备 打开Unity,点击左上角Fi ...
- Eclipse IDE 使用技巧和Android App 开发环境搭建和配置
写在前面: 本片文章只是记录了自己学习时的一些笔记,纯粹是为了自己后面方便查找,片言碎语,不适合大家浏览,请大家不要参考这篇文章. 正文: Eclipse IDE 使用技巧 ...
最新文章
- oracle外键如何创建索引,子表建立外键的索引问题
- BASH SHELL 脚本基础
- LeetCode_树类
- 【Azure Show】|第五期(下)当下最火热的Blazor与App Service, 嘉宾闫晓迪Alan Tsai...
- Python小练习2:pandas.Dataframe使用方法示例demo
- (软件工程复习核心重点)第二章可行性研究-第一节:可行性研究基本介绍
- Enterprise Solution 解决方案与源代码下载
- android UI 标签
- SGU 231 Prime Sum 求lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题
- python画哆啦a梦图片_画了个多啦A梦,但是感觉怪怪的
- 晓莲说-何不原创:如何通过jad把class批量反编译成java文件
- 涡扇发动机的预测性维护
- 2022 职业院校移动开发总结(uni-app)
- .podSpec文件相关知识整理
- PTA 盲盒包装流水线 (25 分)
- git-flow图解
- 计算机wps基础知识试题,计算机一级考试《WPS》精选练习题
- 南大周志华postgr
- foobar2000 1.4.4 正式版发布
- PID控制中P、I、D参数的作用是什么(转载)