ubuntu14.04下qemu调试linux内核
2015-01-21 17:08
309 查看
编译内核
解压缩内核【这里使用linux-3.10.58】make menuconfig:在kernel hacking中选中compile the kernel with debug info【记得提前安装libncurses5-dev】
make bzImage:编译内核
更新gdb
由gdb-7.8.tar.gz下载最新的gdb(7.8)到/opt目录下【目录随意选】解压缩:tar zxvf gdb-7.8.tar.gz
修改代码【否则调试内核会出现remote 'g' packet reply is too long的问题】
cd gdb-7.8/gdb
vim remote.c
按照如图所示修改代码【针对7.8版本】:
代码如下:
if (buf_len > 2 * rsa->sizeof_g_packet) { rsa->sizeof_g_packet = buf_len ; for (i = 0; i < gdbarch_num_regs (gdbarch); i++) { if (rsa->regs->pnum == -1) continue; if (rsa->regs->offset >= rsa->sizeof_g_packet) rsa->regs->in_g_packet = 0; else rsa->regs->in_g_packet = 1; } }
安装gdb
在主目录gdb-7.8下依次运行命令:
./configure
make
make install
启动qemu
cd ~/linux-3.10.58qemu -S -kernel arch/x86/boot/bzImage -m 1024,启动界面如下:
同时摁ctrl+alt+2 输入gdbserver tcp::1234,建立并等待gdb连接
同时摁ctrl+alt+1返回qemu
另外开一个终端到linux-3.10.58主目录下,输入命令:gdb vmlinux
在gdb下输入:target remote localhost:1234 连接qemu
设置断点【举例:b do_fork】
输入命令c开始执行到断点处
输入命令n执行下一个语句
。。。
参考链接:
利用qemu进行内核源码级调试Re: [Qemu-discuss] remote 'g' packet reply is too long
linux下,如何下载安装gdb最新版
相关文章推荐
- ubuntu14.04下qemu调试linux内核
- linux内核调试: qemu + eclipse 组合
- 使用qemu调试linux内核
- VELT-0.1.6开发:在VS2013下用QEMU调试x86 Linux内核
- 使用qemu进行内核kgdb调试(ubuntu)
- Ubuntu14.04下使用cuda-gdb进行调试
- Eclipse CDT + QEMU 调试linux内核
- ubuntu下linux内核源码阅读工具和调试方法总结
- ubuntu下linux内核源码阅读工具和调试方法总结
- eclipse + qemu 编译调试Linux内核
- ubuntu14.04下nodejs + npm + bower的安装、调试和部署
- ubuntu下linux内核源码阅读工具和调试方法总结
- linux内核调试环境搭建-1 Ubuntu10 .10下编译安装qemu
- ubuntu下linux内核源码阅读工具和调试方法总结 (2010-10-31 15:21)
- ubuntu: qemu+gdb 调试linux kernel 学习笔记
- ubuntu下linux内核源码阅读工具和调试方法总结
- 用eclipse和qemu调试arm-linux内核
- linux内核调试环境的搭建(使用qemu)
- Linux操作系统分析(6)- qemu+gdb调试linux内核
- linux工具---用qemu调试linux内核