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解析环境搭建相关推荐

  1. Android图形合成和显示系统---基于高通MSM8k MDP4平台

    介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...

  2. 高通Q+A Virtio hypervisor touch框架介绍(share-device)

    背景 大家都知道现在高通芯片在汽车行业的座舱域运用比较热门,但是这种现象不是突然冒出来的,高通最早在2015年左右就开始推广他们的第一代座舱芯片820A.而在2018年左右开始推广他们的第二代产品(6 ...

  3. 高通5G智能平台概述

    高通5G智能平台概述 高通 android 智能手机解决方案的软件包括两个部分 以linux 操作系统为基础的 android 系统 以 L4,REX为基础的 Modem 部分 在高通系列的架构中,一 ...

  4. 智能座舱更看重「性能冗余」,4家中国供应商领跑高通两代平台

    高通8155,未必是智能座舱的真正王者,但至少在当下,是所有车企可以拿得出手吸引消费者的,为数不多的筹码.而到了明年,5nm的高通第四代座舱平台8295也有机会延续8155的强势地位. 要知道,在国内 ...

  5. Unity 高通AR发布到Android发生黑屏

    这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...

  6. 基于Eclipse平台的Android OpenCV开发环境搭建

    基于Eclipse平台的Android OpenCV开发环境搭建 作者:雨水, 日期:2016-1-31,CSDN博客:http://blog.csdn.net/gobitan 摘要:本文主要记录了如 ...

  7. Android Studio开发环境搭建准备

    Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发 ...

  8. Unity打包基于Android的apk环境搭建总结

    Unity打包基于Android的apk环境搭建总结 资源准备 操作步骤 总结反馈 资源准备 配置Unity打包Android需要3大部分资源准备: 1.Unity准备 打开Unity,点击左上角Fi ...

  9. Eclipse IDE 使用技巧和Android App 开发环境搭建和配置

    写在前面: 本片文章只是记录了自己学习时的一些笔记,纯粹是为了自己后面方便查找,片言碎语,不适合大家浏览,请大家不要参考这篇文章. 正文: Eclipse IDE 使用技巧               ...

最新文章

  1. oracle外键如何创建索引,子表建立外键的索引问题
  2. BASH SHELL 脚本基础
  3. LeetCode_树类
  4. 【Azure Show】|第五期(下)当下最火热的Blazor与App Service, 嘉宾闫晓迪Alan Tsai...
  5. Python小练习2:pandas.Dataframe使用方法示例demo
  6. (软件工程复习核心重点)第二章可行性研究-第一节:可行性研究基本介绍
  7. Enterprise Solution 解决方案与源代码下载
  8. android UI 标签
  9. SGU 231 Prime Sum 求lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题
  10. python画哆啦a梦图片_画了个多啦A梦,但是感觉怪怪的
  11. 晓莲说-何不原创:如何通过jad把class批量反编译成java文件
  12. 涡扇发动机的预测性维护
  13. 2022 职业院校移动开发总结(uni-app)
  14. .podSpec文件相关知识整理
  15. PTA 盲盒包装流水线 (25 分)
  16. git-flow图解
  17. 计算机wps基础知识试题,计算机一级考试《WPS》精选练习题
  18. 南大周志华postgr
  19. foobar2000 1.4.4 正式版发布
  20. PID控制中P、I、D参数的作用是什么(转载)

热门文章

  1. 【OpenHarmony】napi基础知识学习
  2. Lightoj 1258
  3. UVA 10004 Bicoloring (二分染色)
  4. Ajax的使用(详解)
  5. 在Word2010中交叉引用插入参考文献
  6. L1-020 帅到没朋友(C语言)
  7. Meta Connect汇总:Quest Pro发布,主打生产力场景
  8. 脑裂问题以及如何避免
  9. 超体素分割——分割块点云单独保存及遗漏点的处理
  10. 太阳动态ip代理为您详解使用代理ip常见的几个关键点及其解决方案