荣新IT培训中心
全国咨询热线:400-1335-066
您现在的位置:首页>技术文章 > 正文

Linux培训之内核级软件调试技术(2)

时间:2017-09-21 10:54:00 来源:荣新IT教育培训 作者:荣新科技
这是荣新科技分享的Linux内核调试运行系列的第二部,开胃菜已过,正餐该上来了,其他的不多说了,大家一起来看看

Linux培训之内核级软件调试技术(2)
kgdb的调试原理

装置kgdb调试环境需求为Linux内核应用kgdb补丁,补丁完成的gdb远程调试所需求的功用包括命令处置、圈套处置及串口通讯3个主要的局部。kgdb补丁的主要作用是在Linux内核中添加了一个调试Stub。调试Stub是Linux内核中的一小段代码,提供了运转gdb的开发机和所调试内核之间的一个媒介。gdb和调试stub之间经过gdb串行协议停止通讯。gdb串行协议是一种基于音讯的ASCII码协议,包含了各种调试命令。当设置断点时,kgdb担任在设置断点的指令前增加一条trap指令,当执行到断点时控制权就转移到调试stub中去。此时,调试stub的任务就是运用远程串行通讯协议将当前环境传送给gdb,然后从gdb处承受命令。gdb命令通知stub下一步该做什么,当stub收到继续执行的命令时,将恢复程序的运转环境,把对CPU的控制权重新交还给内核。

运用KGDB构建Linux内核调试环境>>>为什么要学习Linux呢?<<<

kgdb提供了一种运用 gdb调试 Linux 内核的机制。运用KGDB能够象调试普通的应用程序那样,在内核中停止设置断点、检查变量值、单步跟踪程序运转等操作。运用KGDB调试时需求两台机器,一台作为开发机(Development Machine),另一台作为目的机(Target Machine),两台机器之间经过串口或者以太网口相连。串口衔接线是一根RS-232接口的电缆,在其内部两端的第2脚(TXD)与第3脚(RXD)穿插相连,第7脚(接地脚)直接相连。调试过程中,被调试的内核运转在目的机上,gdb调试器运转在开发机上。

荣新科技滑稽提示:书中自有颜如玉,书中自有黄金屋,学习让我快乐,单身狗和穷的吃土的小伙伴还在等什么呢?赶快来学习吧