KGDB调试内核

1 环境

  • Ubuntu 20.04
  • VMware Worksation 16 Player
  • Linux Kernel 5.4.0

2 设置虚拟机

2.1 准备两台虚拟机

  • 准备一台虚拟机,然后克隆一台虚拟机,
  • 下面以左边为客户端和右边为目标机展示.
    在这里插入图片描述

2.2 配置虚拟机

  • 配置串口
  • 配置客户机(左边客户端)和目标机(右边服务器端)
    在这里插入图片描述

\.\pipe\com_1

  • 配置好后,请使用如下图方式验证
    在这里插入图片描述

2.3 配置服务器端grub

  • 配置好串口后请打开服务器端grub,添加如下的信息.

sudo vim /etc/default/grub
update-grub

在这里插入图片描述

continuing. warning: cannot insert breakpoint 1. cannot access memory at address 0xffffffff8289fd70

  • 如果出现上面的错误,请在GRUB_CMDLINE_LINUX上添加nokaslr, 然后更新grub.

3 配置内核KGDB

  • 基本内核信息都会默认满足KGDB信息, 请自行查看资料, 这里不再赘述

4 调试内核

  • 服务器端使用下面的命令

echo g > /proc/sysrq-trigger

  • 客户端使用下面的命令

gdb vmlinux
target remote /dev/ttyS1
b _do_fork
c
在这里插入图片描述
在这里插入图片描述

5 tips

缩短开机时间

在/etc/default/grub中,可以添加一个GRUB_RECORDFAIL_TIMEOUT参数,该参数:
GRUB_RECORDFAIL_TIMEOUT = -1 并不倒计时数秒,GRUB menu会出现
GRUB_RECORDFAIL_TIMEOUT = 0 grub menu不会出现
GRUB_RECORDFAIL_TIMEOUT >= 1 grub menu 会展现 设置的秒数

GRUB选择系统

GRUB_DEFAULT=“1>4”

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值