1. Linux Vmlinux反汇编操作和代码分析
1.1 对vmlinx反汇编
arm-linux-gnueabi-objdump -d vmlinux > debug.s
1.2 debug.s代码段分析
vmlinux: file format elf32-littlearm
Disassembly of section .head.text:
内核地址 汇编对应的机器码 汇编指令
c0008000 <stext>:
//ARM在链接脚本里面,指定了内核的入口是stext
//在vmlinux.lds指定了ENTRY(stext) ,然后. = 0xC0000000 +0x00008000;
// .head.text :...,所以执行地址是内核地址0xc0008000
c0008000: e10f9000 mrs r9, CPSR
c0008004: e229901a eor r9, r9, #26
c0008008: e319001f tst r9, #31
c000800c: e3c9901f bic r9, r9, #31
c0008010: e38990d3 orr r9, r9, #211 ; 0xd3
c0008014: 1a000004 bne c000802c <stext+0x2c>
c0008018: e3899c01 orr r9, r9, #256 ; 0x100
c000801
本文介绍了Linux Vmlinux的反汇编操作,包括使用arm-linux-gnueabi-objdump进行反汇编和代码段分析。同时详细讲解了内核Oops错误的含义,提供了通过回溯分析错误的步骤,如检查Backtrace信息,定位出错地址,使用System.map和kallsyms等工具进行调试。
订阅专栏 解锁全文
705

被折叠的 条评论
为什么被折叠?



