linux 3.4.10 内核内存管理源代码分析1:源代码阅读工具,编译及调试
2013-05-18 10:18
633 查看
法律声明:《linux
3.4.10 内核内存管理源代码分析》系列文章由机器人(ancjf@163.com)发表于http://blog.csdn.net/ancjf,文章遵循GPL协议。欢迎转载,转载请注明作者和此条款。
在分析源代码之前先介绍阅读源代码使用的工具,编译和调试源代码的方法。
下面介绍Linux源代码调试方法:
编译调试环境我用的是用光盘映像ubuntu-12.04.1-desktop-i386.iso安装的系统。
apt-get install libncurses5-dev
解压并进入源代码目录
tar xjf linux-3.4.10.tar.bz2
cd linux-3.4.10
需要运行命令进行配置,不用改任何配置,直接保存退出就可以了
make menuconfig
编译内核
make bzImage
创建一个软连接
ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu
qemu -kernel ./arch/x86/boot/bzImage -append "root=/dev/ram0 rw" -s -S
开启另外一个命令窗口,进入解压的内核源代码目录,运行命令:
gdb vmlinux
在gdb命令行下输入命令
target remote localhost:1234
b start_kernel
现在可以用gdb命令像调试普通程序一样调试内核
3.4.10 内核内存管理源代码分析》系列文章由机器人(ancjf@163.com)发表于http://blog.csdn.net/ancjf,文章遵循GPL协议。欢迎转载,转载请注明作者和此条款。
在分析源代码之前先介绍阅读源代码使用的工具,编译和调试源代码的方法。
内核调试:
我分析Linux源代码是用source insght,但在内核中源代码中有众多的宏和平台,一个函数可能有平台和配置不同的执行流程,用调试内核的方法可以确定函数的执行流程。这里分析的流程是在网站站下载的源码包linux-3.4.10.tar.bz2。下面介绍Linux源代码调试方法:
编译调试环境我用的是用光盘映像ubuntu-12.04.1-desktop-i386.iso安装的系统。
编译内核
在编译内核前要安装libncurses:apt-get install libncurses5-dev
解压并进入源代码目录
tar xjf linux-3.4.10.tar.bz2
cd linux-3.4.10
需要运行命令进行配置,不用改任何配置,直接保存退出就可以了
make menuconfig
编译内核
make bzImage
安装qemu
apt-get install qemu创建一个软连接
ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu
调试:
在刚才解压的内核源代码目录下运行命令qemu -kernel ./arch/x86/boot/bzImage -append "root=/dev/ram0 rw" -s -S
开启另外一个命令窗口,进入解压的内核源代码目录,运行命令:
gdb vmlinux
在gdb命令行下输入命令
target remote localhost:1234
b start_kernel
现在可以用gdb命令像调试普通程序一样调试内核
相关文章推荐
- linux 3.4.10 内核内存管理源代码分析1:源代码阅读工具,编译及调试
- linux 3.4.10 内核内存管理源代码分析10:slab通用长度内存分配
- 区域函数[置顶] linux 3.4.10 内核内存管理源代码分析5:伙伴系统初始化
- linux 3.4.10 内核内存管理源代码分析4:伙伴系统内存释放
- linux 3.4.10 内核内存管理源代码分析9:Slab内存释放
- linux 3.4.10 内核内存管理源代码分析7:Slab块的管理
- linux 3.4.10 内核内存管理源代码分析3:伙伴系统内存分配
- [置顶] linux 3.4.10 内核内存管理源代码分析10:slab通用长度内存分配
- linux 3.4.10 内核内存管理源代码分析6:Slab分配器
- linux 3.4.10 内核内存管理源代码分析8:Slab内存分配
- linux 3.4.10 内核内存管理源代码分析5:伙伴系统初始化
- linux 3.4.10 内核内存管理源代码分析11:Slab初始化
- linux 3.4.10 内核内存管理源代码分析2:伙伴系统
- linux源代码分析和阅读工具比较
- 几款linux源代码分析阅读工具
- linux 内核源代码情景分析——linux 内存管理的基本框架
- Linux内核调试工具:Kdb的编译安装
- Linux-0.11内核源代码分析系列:内存管理get_free_page()函数分析
- linux源代码分析和阅读工具比较
- linux源代码分析和阅读工具比较