如何解读Linux Kernel OOPS信息( 四 )

上面打印出的这些都是异常发生时寄存器的值 。
PC:PC也叫计数寄存器,用于存放下一条要执行的指令的地址,因此在子程序返回后,要将LR中的地址存入PC,即mov PC LR 。
LR:子程序的返回地址:从子程序返回后,主程序继续执行的指令的地址称为子程序的返回地址.LR也叫链接寄存器,用于存放子程序的返回地址 。在要进入子程序之前,先将子程序的返回地址存入LR
SP:SP也叫堆栈寄存器,用于存放要执行的数据 。
X0~X7:传递子程序的参数和返回值,使用时不需要保存,多余的参数用堆栈传递,64位的返回结果保存在x0中 。
X8:用于保存子程序的返回地址,使用时不需要保存 。
X9~X15:临时寄存器,也叫可变寄存器,子程序使用时不需要保存 。
X16~X17:子程序内部调用寄存器(IPx),使用时不需要保存,尽量不要使用 。
X18:平台寄存器,它的使用与平台相关,尽量不要使用 。
X19~X28:临时寄存器,子程序使用时必须保存 。
X29:帧指针寄存器(FP),用于连接栈帧,使用时必须保存 。
X30:链接寄存器(LR),用于保存子程序的返回地址 。
X31:堆栈指针寄存器(SP),用于指向每个函数的栈顶 。
[867.148820] Process insmod (pid: 1163, stack limit = 0xffffffc00a4fc000)[867.148822] Stack: (0xffffffc00a4ffc40 to 0xffffffc00a500000)[867.148826] fc40: ffffffc00a4ffc50 ffffff80080830f8 ffffffc00a4ffcd0 ffffff800818d2d0[867.148829] fc60: ffffff8000ef2000 ffffff80095cd000 ffffffc0cde6e8c8 ffffffc0cdce1140[867.148832] fc80: 0000000000000000 ffffff800818d2a4 ffffff8000ef2000 ffffff80095cd000[867.148834] fca0: ffffffc0cde6e8c8 ffffff80095cd000 0000000000000000 ffffff8000ef2050[867.148837] fcc0: 0000000000000001 ffffffc0cde6e880 ffffffc00a4ffd00 ffffff800813ab5c[867.148840] fce0: ffffff8000ef2000 ffffffc00a4ffe58 ffffffc0cde6e8c8 ffffff80095cd000[867.148843] fd00: ffffffc00a4ffe20 ffffff800813b2b4 0000000000000000 00000055736b60f0[867.148846] fd20: 0000000000000003 0000007fb096c8c4 0000000040000000 0000000000000015[867.148849] fd40: 000000000000011d 0000000000000111 ffffff8008ef2000 ffffffc0cdc44380[867.148851] fd60: 0000000000000000 000000000002c098 ffffffc00a4ffe20 ffffff8008f00000[867.148854] fd80: 0000000000000000 00000055736b60f0 ffffffc000000064 ffffff8000000072[867.148857] fda0: ffffff800000006e ffffff800000003f ffffff8000000124 00000000024000c0[867.148860] fdc0: ffff81b400000030 000003e800000001 00000000000003e8 000000000002c098[867.148862] fde0: 00000000633eccfc 0000000000000000 0000000000000000 0000000000000000[867.148865] fe00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000[867.148868] fe20: 0000000000000000 ffffff8008082f70 0000000000000000 00000040ee9ae000[867.148871] fe40: ffffffffffffffff 0000000000000001 0000000000000002 ffffff800bea0000[867.148874] fe60: 000000000002c098 ffffff800becb9d8 ffffff800becb8d0 ffffff800beb7748[867.148876] fe80: 0000000000003000 00000000000030d8 0000000000000000 0000000000000000[867.148879] fea0: 0000000000000478 0000001a00000019 0000000000000009 0000000000000004[867.148882] fec0: 0000000000000003 00000055736b60f0 0000000000000000 0000000000000003[867.148884] fee0: 0000000000000000 0000000000000218 0000000000000001 0000000000000001[867.148887] ff00: 0000000000000111 0000000000000003 0000000200000002 0000000000000000[867.148890] ff20: 00000000000010f0 0000000000000000 0000000000000000 0000000000000040[867.148892] ff40: 00000055736cddb0 0000007fb096c8a0 0000000000000000 0000005585e6b600[867.148895] ff60: 00000055736b60f0 0000000000000000 0000000000000000 0000005585e6b5d0[867.148898] ff80: 00000055736b2ef8 0000000000000000 0000000000000000 0000000000000000[867.148901] ffa0: 0000000000000000 0000007fdbea3bd0 00000055736abdc0 0000007fdbea3bd0[867.148903] ffc0: 0000007fb096c8c4 0000000040000000 0000000000000003 0000000000000111[867.148906] ffe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000

经验总结扩展阅读