linux 内核开发与调试,LINUX内核开发与调试--KDB.PDF

LINUX内核开发与调试--KDB

LINUX内核开发与调试

-- KDB

张银奎

2017/3/ 18

KDB

 the in-kernel debugger for the Linux kernel

 内建在LINUX内核中的内核调试器

 整个调试器实现在内核中

 命令接收、处理符号、执行、输出结果,全部功能

 比Windows的调试引擎的范围要大

 调试引擎只是调试器的前端

 而且支持单机内核调试

 2.6.35

 KDB merged to mainline

 Early debug with EHCI debug port or keyboard + vga console

Silicon

Graphics

Internatio

nal Corp.

构建选项

 CONFIG_DEBUG_KERNEL=y

 包含调试信息

 CONFIG_FRAME_POINTER=y

 包含栈帧指针,易于观察局部变量和栈回溯

 CONFIG_KGDB=y

 CONFIG_KGDB_SERIAL_CONSOLE=y

 通过串口调试

 CONFIG_KGDB_KDB=y

 CONFIG_KDB_KEYBOARD=y

 单机调试

Kernel/debug/Makefile

obj-$(CONFIG_KGDB) += debug_core.o gdbstub.o

obj-$(CONFIG_KGDB_KDB) += kdb/

两种使用模式

单机 双机

•键盘输入 •串口连接

•控制台输出 •串口工具即可

•putty

 /pub/linux/kernel/people/jwessel/kdb/usingK

DB.html

启用

 kgdboc=[kms][[,]kbd][[,]serial_device][,baud]

 使用串口

 kgdboc=ttyS0,115200

 使用键盘

 kgdboc=kbd

 使用键盘和串口

 kgdboc=kbd,ttyS0,115200

格物

 启动学习用虚拟机时,按下Shift

键,选择Linux … Kernel

Debug

 在主机上启动putty,打开串口

\\.\pipe\ucom1

 回车让虚拟机开始引导

感受bt命令

KDB基因- shell-style界面

 命令模仿shell

 ps, lsmod, dmesg, …

 可以使用tab键补齐功能来查找符号

 命令输入

 文本输出

 控制台

Not designed for

 Source level debugging

 Debugging user programs

单机内核

简介 进入KDB 常用命令 内部实现

调试

三类方法

代码 异常 键盘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值