Ubuntu内核调试技巧

有时候在Ubuntu上开发一个PC驱动,结果导致了系统崩溃。Ubuntu 12.04测试中,发现系统默认是打开了内核转储的能力。下面我在调试最新的内核Linux 3.12.5的一些关键操作。


Ubuntu编译内核

CONCURRENCY_LEVEL用来制定多核编译的CPU核的数量

#! /bin/sh
export CONCURRENCY_LEVEL=9
fakeroot make-kpkg --initrd --append-to-version=-modem kernel_image

安装内核

编译出的内核,在上一级目录

sudo dpkg -i linux-image-3.12.5-modem+_3.12.5-modem+-10.00.Custom_amd64.deb


删除内核

找到你自己安装的内核

dpkg --list|grep linux-image

删除列举出的package

sudo apt-get --purge remove linux-image-3.12.5-modem+ 

注意:不可以删除,你正在使用的内核


解压缩Ubuntu .crash报告

主要是为了从报告中取出Vmcore文件,注意.crash文件需要root权限

sudo apport-unpack /var/crash/linux-image-3.12.5-modem+.0.crash /home/cpuwolf

crash分析

因为是调试我们需要ELF格式的内核文件vmlinux

crash VmCore ~/cpuwolf/build/linux-stable/vmlinux


你可能感兴趣的:(linux,操作系统,ubuntu)