gdb+qemu联合调试linux-4.15

说明

以前使用过eclipse调试过内核,最近又想用gdb调试内核,还是比较习惯使用命令操作,但是在搭建调试内核的gdbqemu过程中,遇到一个问题,想了很多办法,最后直接感觉到官方下载最新的gdbqemu源码安装,以为调试内核设置断点不成功是因为使用apt安装的gdb和qemu比较旧,安装新的gdb和qemu后,还是断点没起作用,折腾了还几天,终于找到原因了。下面是作者的环境:

  • ubuntu16.04
  • GNU gdb (GDB) 8.1.50.20180125-git
  • QEMU emulator version 2.11.0
  • linux-4.15

但是根据最后的原因,调试最新的内核可以使用apt安装的gdb和qemu

内核配置

  • 配置调试信息
    与其他相关配置内核环境的教程一样,需要配置调试信息到vmlinux:
    图1
    [*] Compile the kernel with debug info(选中这个)
  • 取消KASLR
    如下截图所示:
    图2
    取消选项:
    [ ] Randomize the address of the kernel image (KASLR)
  • 说明
    为什么取消这个KASLR,不了解其他人在使用gdb+qemu调试最新的内核时,是否遇到在设置的断点处,在qemu运行的系统不会暂停,直接运行到挂接文件系统,测试了很多办法,最后在
    https://unix.stackexchange.com/questions/396013/hardware-breakpoint-in-gdb-qemu-missing-start-kernel
    给了我提示,然后取消这个选项后,果然设置断点成功。
  • 主要问题
    在gdb里边设置断点后,断点不起作用,qemu里运行的系统没有在相应的断点处stop,直接运行到挂接文件系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值