linux 源代码分析1:源代码阅读工具,编译及调试
在分析源代码之前先介绍阅读源代码使用的工具,编译和调试源代码的方法。
这篇连载是对linux 3.4.10 内核内存管理源代码分析
内核调试:
我分析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命令像调试普通程序一样调试内核
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 ancjf@163.com
文章标题:linux 源代码分析1:源代码阅读工具,编译及调试
本文作者:ancjf
发布时间:2013-05-18, 10:18:17
最后更新:2020-04-18, 15:57:23
原始链接:http://ancjf.com/2013/05/18/linux-3-4-10-%E5%86%85%E6%A0%B8%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%EF%BC%9A%E6%BA%90%E4%BB%A3%E7%A0%81%E9%98%85%E8%AF%BB%E5%B7%A5%E5%85%B7%EF%BC%8C%E7%BC%96%E8%AF%91%E5%8F%8A%E8%B0%83%E8%AF%95/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。