kgdb调试内核无法执行断点及kdb-22:Permisson denied
发布日期:2021-06-30 21:33:48 浏览次数:2 分类:技术文章

本文共 1402 字,大约阅读时间需要 4 分钟。

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

章节预览:

章节内容:

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系统在/boot/grub/grub.cfg内增加 kgdboc=ttyS1,102400 kgdbwait ,Centos8在/boot/loader/entries/xxxx-内核版本.conf内增加 kgdboc=ttyS1,102400 kgdbwait ;

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

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

转载地址:https://lkyof.blog.csdn.net/article/details/113785992 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ubuntu中的tftp用法
下一篇:一起学习C语言:结构体(二)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月25日 22时43分10秒