KGDB内核调试

KGDB内核调试

ID:45849443

大小:841.50 KB

页数:40页

时间:2019-11-18

KGDB内核调试_第1页
KGDB内核调试_第2页
KGDB内核调试_第3页
KGDB内核调试_第4页
KGDB内核调试_第5页
资源描述:

《KGDB内核调试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用KGDB调试技巧2第一章应用程序的调试第二章内核级调试目录第1节几种调试技术第2节Vmware+Kgdb的配置第3节驱动的调试方法第1节.GDB常用命令介绍第2节.GDB使用前的准备第3节.GDB实战3简介本课程是讲解GDB调试工作怎样去调试应用程序,以及利用KGDB去调试Linux内核去驱动的方法。GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。课程介绍2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、动态的改变你程序的执行环境。使大家能用

2、GDB调试Linux下的应用程序及内核驱动程序,熟悉Linux编程环境下的调试技巧,熟悉Linux下的命令。课程目标GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。GDB作为一个专用调试器,允许你去观察一个程序的运行过程,或者当一个程序发生崩溃时,程序内部发生了什么。GDB是什么4第一章应用程序的调试第二章内核级调试目录5第一章应用程序的调试第1节.GDB常用命令介绍1.1通用命令启动GDB你可以直接敲入“gdb”开始gdb程序,也可以带各种参数启动,形式如下:gdbprogramgdbprogramcoregdbprogram1234退出GDBquit[expr

3、ession]q退出GDB用"quit"命令,或者是缩写"q",或者按下ctrl-d。如果后面跟着表达式时,将退出gdb返回表达式计算的值作为返回值6第一章应用程序的调试Shell命令shellcommandstring启动shell去执行commandstringmake是不需要用shell而直接可以运行。log文件设置命令我们可以吧GDB命令的输出到文件中,下面是log文件的使用方法。setloggingon/offsetloggingfilefile:改变当前的log文件名,默认是gdb.txt。setloggingoverwrite[on/off]:默认是追加的。setl

4、oggingredirect[on/off]:默认是输出到终端和日志文件,用这个命令可以只输出到logfile。showlogging帮助命令help[command/class]敲入"help"或缩写"h"就可以启动gdb帮助信息。aproposargscompleteargs7第一章应用程序的调试1.2GDB运行控制类命令runr在gdb下运行程序,执行这个命令之前,我们必须通过GDB带参数的形式制定了程序名,参数就是所制定的程序名。start在gdb下运行程序,执行这个命令等于设了个临时断点在main函数,然后再run。attachprocess-id跟踪一个已经运行的进程

5、,process-id是进程ID。8第一章应用程序的调试breakb断点用于停止运行程序,是调试手段中一个非常重要的手段,命令形式主要有以下几种。breakbreakfunctionbreakfilename:functionbreakfilename:linenumbreakaddressbreak...ifcond设置条件断点,只有到cond条件满足,也就是con表达式的值为真的时候程序才会断下来。tbreakargs设置一个临时断点,只有效一次。9第一章应用程序的调试watch我们可以设置一个观察点,当所观察的值改变的时候,程序就会停下来,主要有以下几种形式。watchex

6、pr当表达式变为值的时候停止rwatchexpr当值被读的时候停止awatchexpr当值被读或者被写的时候停止10第一章应用程序的调试continue[ignore-count]c[ignore-count]恢复程序执行,程序从当前断点继续往下执行,直到遇到下一个断点。[ignore-count]参数,告诉GDB往下执行忽略的程序运行中断次数。step[count]step执行一行代码行然后停下来,如果这段代码行是函数的话,那么将进入函数内部单步执行。stepcount连续执行count次step。next[count]next执行一行代码行然后停下来,如果这段代码行是函数的话

7、,那么将不进入函数内部而直接执行完整个函数再停下来。finish继续执行当前函数,直到运行到当前函数返回后才停止,并且显示返回值。11第一章应用程序的调试1.3GDB信号infohandle/signals打印所有信号,并且告诉我们GDB怎么去处理每个信号。信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号。SIGSEGV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。