kgdb调试内核无法执行断点及kdb-22:Permisson denied

之前在Centos8操作系统中,通过kgdb调试内核遇到无法执行断点及kdb-22:Permisson denied的问题。接下来,通过本篇文章讲述修改的配置参数。

章节预览:


1. 选择内核配置内核参数
2. 配置内核参数
2.1 配置kgdb基本调试参数
2.2 检查或手动配置参数
3. kgdb相关所需配置参数
4. 后续内容


章节内容:


1. 选择内核配置内核参数

  在linux相关系统中调试内核本是一件简单的事情,但某个参数未配置或配置不正确可能会遇到一些小问题:比如无法通过串口连接到目标机器,无法调试目标内核代码等等。
首先,我们先从选择内核版本开始入手,通过 uname -r 查看内核版本:

图1 内核版本

图1 查看内核版本


  参考图1,内核版本为4.18.0-240.10.1,可以下载4.18.0-240.10.1或4.18.xx的版本使用。


2. 配置内核参数

  首先把内核压缩包拷贝到/usr/src(ubuntu系统) 或 /usr/src/kernels(Centos相关系统)下解压并进入目录,接着配置内核参数。

  输入 make menuconfig(根据提示逐一安装所需库即可):


在这里插入图片描述

图2 内核参数配置界面

2.1 配置kgdb基本调试参数

  首先,按 / 出现搜索窗口:


在这里插入图片描述

图3 内核参数搜索窗口

  参考图3,在搜索窗口中输入CONFIG_KGDB:

在这里插入图片描述

图4 内核参数查找

  参考图4,输入回车键:

在这里插入图片描述

图5 参数相关信息

  参考图5,我们可以看到(1)、(2)…下是 CONFIG_KGDB 对应的所有可设置的参数选项,我们按数字1进入:


在这里插入图片描述

图6 参数选项位置

  参考图6,按回车键继续进入:

在这里插入图片描述

图7 CONFIG_KGDB设置

  参考图7,CONFIG_KGDB这样设置即可,然后按右移键到 Save选项,再按回车键:

在这里插入图片描述

图8 保存配置文件

  参考图8,选择ok保存配置,然后一直Esc键退出内核参数配置界面。


2.2 检查或手动配置参数

  使用vi .config 或 vim .config打开配置文件(根目录):

在这里插入图片描述

图9 检查配置文件

  参考图9,在我们不确定是否已经正确配置文件时,可以检查或手动设置参数。

3. kgdb相关所需配置参数

  现在我们已经知道配置和检查参数的方式,接下来了解所需配置参数有哪些:

      CONFIG_KGDB=y
      CONFIG_KGDB_SERIAL_CONSOLE=y
      CONFIG_KGDB_KDB=y
      CONFIG_KDB_KEYBOARD=y
      CONFIG_DEBUG_INFO=y

    易忽略的配置(可以在检查配置文件时配置):

      CONFIG_KDB_DEFAULT_ENABLE=0x1 # kdb -22:Permisson denied
      CONFIG_RANDOMIZE_BASE=y # 无法调试断点


4. 后续内容

  经过上述步骤后,剩下的部分简单介绍一下:

    ① 编译及安装内核比较简单,参考一下以前写的文章,ubuntu编译内核方式

    ② ubuntu系统在/boot/grub/grub.cfg内增加 kgdboc=ttyS1,102400 kgdbwait ,Centos8在/boot/loader/entries/xxxx-内核版本.conf内增加 kgdboc=ttyS1,102400 kgdbwait ;

    ③ 远端调试机中的内核源码应放置在与目标机器对应的位置,并把目标机器源码中的vmlinux拷贝至远端调试机中的内核源码中对应的位置;

    ④ 在vmware中启动目标机器(kgdb调试的机器)时,可以通过添加串行端口与远端调试机通讯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坤昱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值