qemu+gdb 调试内核
2013-11-22 16:28
232 查看
参考文章:
/article/9733298.html (比较推荐)
http://blog.chinaunix.net/uid-26009923-id-3825761.html (过程详细,但对于gdb7.4 安装可能存在问题)
/article/1643376.html (gdb bug 解决,可以用7.5 或者之上版本)
/article/10561134.html(vmlinux 和 bzImge initrd-x.x.x.img 介绍)
http://hi.baidu.com/widebright/item/90a80f0a3dd6fb036c9048da (vmlinx 和bzimage 的形成)
1. 下载及安装qemu http://wiki.qemu.org/Testing
test 链接下,可以下载到不同版本内核的img,可以测试qemu是否安装成功
2. 下载要调试的内核版本,如3.0.7 (本文中用到的)
编译内核 http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
make menuconfig 配置内核 (下次最好能够去掉无关的选项,减少编译时间和空间)
具体编译选项内容参考: http://lamp.linux.gov.cn/Linux/kernel_options.html来对配置文件进行裁剪
make 即可在arch/boot/x86_64/bzImage
3. gdb 安装和编译,自带的gdb 远程调试时会发生段溢出。修改见上面参考文章
4. qemu 调试选项启动 qemu –S –kernel arch/x86/boot/bzImage –hda ubuntu9.10_32.img –append “root=dev/hda”
具体关于qemu的选项,见 http://jianlee.ylinux.org/Computer/Software/kvm-qemu.html
比较重要的是调试选项,如-S ,-s是等待gdb连接到1234,写了之后就在启动qemu之后,不需要ctrl+alt+2中输入 gdbserver tcp:1234了 ,直接等待gdb连接即可。
linux 启动选项 :-kernel 指定内核启动,而不需要将其安装在硬盘镜像中
5. 用gdb 远程连接 qemu调试端口就可以调试了
gdb vmlinux (加载调试内核的符号表)
(gdb) target remote localhost:1234
然后调试即可。
/article/9733298.html (比较推荐)
http://blog.chinaunix.net/uid-26009923-id-3825761.html (过程详细,但对于gdb7.4 安装可能存在问题)
/article/1643376.html (gdb bug 解决,可以用7.5 或者之上版本)
/article/10561134.html(vmlinux 和 bzImge initrd-x.x.x.img 介绍)
http://hi.baidu.com/widebright/item/90a80f0a3dd6fb036c9048da (vmlinx 和bzimage 的形成)
1. 下载及安装qemu http://wiki.qemu.org/Testing
test 链接下,可以下载到不同版本内核的img,可以测试qemu是否安装成功
2. 下载要调试的内核版本,如3.0.7 (本文中用到的)
编译内核 http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
make menuconfig 配置内核 (下次最好能够去掉无关的选项,减少编译时间和空间)
具体编译选项内容参考: http://lamp.linux.gov.cn/Linux/kernel_options.html来对配置文件进行裁剪
make 即可在arch/boot/x86_64/bzImage
3. gdb 安装和编译,自带的gdb 远程调试时会发生段溢出。修改见上面参考文章
4. qemu 调试选项启动 qemu –S –kernel arch/x86/boot/bzImage –hda ubuntu9.10_32.img –append “root=dev/hda”
具体关于qemu的选项,见 http://jianlee.ylinux.org/Computer/Software/kvm-qemu.html
比较重要的是调试选项,如-S ,-s是等待gdb连接到1234,写了之后就在启动qemu之后,不需要ctrl+alt+2中输入 gdbserver tcp:1234了 ,直接等待gdb连接即可。
linux 启动选项 :-kernel 指定内核启动,而不需要将其安装在硬盘镜像中
5. 用gdb 远程连接 qemu调试端口就可以调试了
gdb vmlinux (加载调试内核的符号表)
(gdb) target remote localhost:1234
然后调试即可。
相关文章推荐
- 利用eclipse + qemu| Vmware + gdb 调试linux内核
- QEMU+GDB调试内核
- 使用Qemu+gdb来调试内核
- 如何使用Qemu+gdb来调试内核
- 手把手教你使用eclipse+qemu+gdb来单步调试ARM内核【学习笔记】
- qemu gdb 调试内核
- 使用Qemu+gdb来调试内核
- 利用GDB和Bochs调试内核源代码 中文版权所有: OldLinux论坛
- gdb调试linux0.11内核。
- 通过gdb调试分析Linux内核的启动过程
- gdb 远程qemu-arm调试
- gdb调试android内核
- 使用gdb调试内核错误信息
- gdb调试命令及程序崩溃时的内核转存core dump
- 构造一个简单的Linux系统MenuOS,使用gdb调试内核
- Linux内核启动源码跟踪-gdb调试篇
- 利用qemu进行内核源码级调试
- fedora17下用gdb和bochs调试linux-0.11内核
- 使用Bochs和GDB对内核进行源代码级调试
- linux内核移植-内核调试工具KGBD、DDD、GDB移植笔记