Linux调试之(三)addr2line+vmlinux
文章目录
- Linux调试之(三)addr2line+vmlinux
- 【1】 addr2line位置
- 【2】addr2line使用
- [1] 说明是空指针造成的错误
- [2] 寄存器信息主要是PC的值
- [3] addr2line定位错误
Linux调试之(三)addr2line+vmlinux
addr2line可以将出错代码地址转转换成代码所在文件所在行。
【1】 addr2line位置
./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line
【2】addr2line使用
分析崩溃重启log:
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.14.0 #11
task: ee8a0000 ti: ee8a4000 task.ti: ee8a4000
PC is at dm9000_probe+0x1c/0x8f0
LR is at platform_drv_probe+0x18/0x48
pc : [<c0277cc8>] lr : [<c0247f7c>] psr: 60000153
sp : ee8a5e48 ip : 00000000 fp : 00000000
r10: c052a4fc r9 : 00000000 r8 : c0591e98
r7 : 00000000 r6 : ee97c810 r5 : ee97c800 r4 : 00000000
r3 : 000000ff r2 : 00000000 r1 : ee8a5de8 r0 : ee97c800
Flags: nZCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel
Control: 10c5387d Table: 4000404a DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0xee8a4240)
Stack: (0xee8a5e48 to 0xee8a6000)
5e40: ee975cf0 00000000 ee1503a8 00000001 c0561afc ee150438
5e60: 00000000 ee97c810 c0591e98 ee97c810 00000000 c0591e98 c0561afc c052a4fc
5e80: 00000000 c0247f7c c0247f64 c05d931c c0591e98 c0246668 ee97c810 c0591e98
[<c0277cc8>] (dm9000_probe) from [<c0247f7c>] (platform_drv_probe+0x18/0x48)
[<c0247f7c>] (platform_drv_probe) from [<c0246668>] (driver_probe_device+0x100/0x210)
[<c0246668>] (driver_probe_device) from [<c0246804>] (__driver_attach+0x8c/0x90)
[<c0246804>] (__driver_attach) from [<c0244fbc>] (bus_for_each_dev+0x58/0x88)
[<c0244fbc>] (bus_for_each_dev) from [<c0245e28>] (bus_add_driver+0xd8/0x1cc)
[<c0245e28>] (bus_add_driver) from [<c0246e1c>] (driver_register+0x78/0xf4)
[1] 说明是空指针造成的错误
Unable to handle kernel NULL pointer dereference at virtual address 00000000
[2] 寄存器信息主要是PC的值
PC is at dm9000_probe+0x1c/0x8f0
pc : [<c0277cc8>] lr : [<c0247f7c>] psr: 60000153
[3] addr2line定位错误
aarch64-linux-android-addr2line -f -e vmlinux 0xyyyyyyyy也就是PC值)
./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e kernel/vmlinux c0277cc8 dm9000_probe
Linux调试之(三)addr2line+vmlinux相关推荐
- Linux 调试之 TRACE_EVENT(三)
文章目录 前言 一.include/trace/events之外定义跟踪头文件 二.tracepoint 使用演示 三.A look inside the magic of TRACE_EVENT() ...
- Linux调试之(二)gdb+vmlinux
文章目录 Linux调试之(二)gdb+vmlinux [1]定位arm-eabi-gdb 和 vmlinux [2]gdb加载内核符号表 1.查看内核符号表 2.执行arm-eabi-gdb vml ...
- 20135302魏静静——linux课程第三周实验及总结
linux课程第三周实验及总结 一.实验:跟踪分析Linux内核的启动过程 使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开shell cd LinuxKer ...
- linux内核调度,Linux内核的三种调度策略
一 Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃 ...
- Linux 调试之 TRACE_EVENT(二)
文章目录 前言 一.DECLARE_EVENT_CLASS简介 二.TP_STRUCT__entry 2.1 __field_ext(type, item, filter_type) 2.2 __st ...
- 【Linux】Linux调试器--gdb详解
Linux环境基础开发工具使用(二) 一.Linux调试器-gdb使用 1.背景 2.使用 二.Linux项目自动化构建工具-make/Makefile 1.背景 2.依赖关系和依赖方法 3.原理 4 ...
- LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍
LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍 LVS (Linux Virtual Server) LVS(Linux Virtual Server)其实就是 ...
- windows系统中查看linux分区的三种方式
双系统中windows查看linux分区的三种方式 一.这个算是大家早有耳闻的啦,就是使用Explore2fs这个工具,可以去 http://www.chrysocome.net/explore2fs ...
- linux查看日志的几种命令,Linux查看日志三种命令(转载)
第一种:查看实时变化的日志(比较吃内存) 最常用的: tail -f filename (默认最后10行,相当于增加参数 -n 10) Ctrl+c 是退出tail命令 其他情况: tail -n 2 ...
最新文章
- 分布式事务开局第一篇,从数据库事务隔离级别说起
- 信息上传服务器加速cpu处理,英特尔发布全新第二代至强可扩展处理器携手浪潮加速新型应用发展...
- jQuery Mobile和PhoneGap混合开发
- git revert 的问题
- research paper for management science
- 《.NET应用架构设计:原则、模式与实践》新书博客--试读-持续更新
- Spring Boot 中使用 MyBatis 整合 Druid 多数据源
- 某游戏在华为鸿蒙,华为鸿蒙系统运行安卓游戏出现新状况!安卓换皮论被彻底打脸?...
- JEECG企业微云快速二次开发平台-新版本首页展示
- testlink匹配mysql8_如何安装Testlink
- Android中 广播发送 和 接受 的简单示例
- 为什么那么多人用“ji32k7au4a83”作密码?
- EXPLAIN PLAN用法小议
- WinCC flexible的版本与安装移植软件
- nfc卡模式与标准模式_NFC是什么?有什么优势和劣势?
- 胜任力模型(competency model)
- 维修技术论坛万能预装系统 v5.0
- Unity打包后的日志
- 好全的前端只是体系(前端架构师来找找有木有你想要的) 五
- 运营︱快速提高app日活的方法