当前位置:网站首页>kgdb调试内核无法执行断点及kdb-22:Permisson denied
kgdb调试内核无法执行断点及kdb-22:Permisson denied
2022-07-27 10:13:00 【坤昱】
之前在Centos8操作系统中,通过kgdb调试内核遇到无法执行断点及kdb-22:Permisson denied的问题。接下来,通过本篇文章讲述修改的配置参数。
章节预览:
1. 选择内核配置内核参数
2. 配置内核参数
2.1 配置kgdb基本调试参数
2.2 检查或手动配置参数
3. kgdb相关所需配置参数
4. 后续内容
章节内容:
1. 选择内核配置内核参数
在linux相关系统中调试内核本是一件简单的事情,但某个参数未配置或配置不正确可能会遇到一些小问题:比如无法通过串口连接到目标机器,无法调试目标内核代码等等。
首先,我们先从选择内核版本开始入手,通过 uname -r 查看内核版本:
参考图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.1 配置kgdb基本调试参数
首先,按 / 出现搜索窗口:
参考图3,在搜索窗口中输入CONFIG_KGDB:

参考图4,输入回车键:

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

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

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

参考图8,选择ok保存配置,然后一直Esc键退出内核参数配置界面。
2.2 检查或手动配置参数
使用vi .config 或 vim .config打开配置文件(根目录):

参考图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调试的机器)时,可以通过添加串行端口与远端调试机通讯。
边栏推荐
- mount.nfs: access denied by server while mounting解决
- Sorting out some open source projects of speech recognition
- ctf (hardrce)
- 【英雄哥六月集训】第 28天: 动态规划
- Matlab-绘制日期和持续时间图
- File upload vulnerability bypass method
- [brother hero June training] day 25: tree array
- [brother hero June training] day 24: line segment tree
- Oracle resizing data files
- phpstudy中Apache无法启动
猜你喜欢

简单几步教您实现为工业树莓派共享网络

关于ETL的两种架构(ETL架构和ELT架构)

Preparation for Android interview (including the whole process of interview, interview preparation, interview questions and materials, etc.)

让人深思:句法真的重要吗?邱锡鹏组提出一种基于Aspect的情感分析的强大基线...

samba服务器

Oracle调整数据文件大小杂谈
![[shutter] SharedPreferences](/img/e4/e7518126d35c9ed0eeeacabb262cd3.png)
[shutter] SharedPreferences

游戏玩家问题

Samba server

厉害了!VMware ESXi安装记录,附下载
随机推荐
matlab-绘制分叉与混沌分支图
语音识别的一些开源项目整理
Oracle view hard parsing
WEB服务如何平滑的上下线
Xiandai 004
Oracle resizing data files
Oracle查看硬解析
How to turn off the application of computer self startup
[Linux] install redis
让人深思:句法真的重要吗?邱锡鹏组提出一种基于Aspect的情感分析的强大基线...
免费 DIY 之旅问题
Metaspolit
[Select] how to write PHP code perfectly?
sql注入
分享机器学习笔记(PDF版)+实战项目(数据集+代码)
Xiandai 003
【Flutter】SharedPreferences使用
R语言管道符(%>%)及占位(.)的简单介绍
A brief introduction to R language pipeline symbols (% >%) and placeholders (.)
邮件服务器