Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt

Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt

ID:51617637

大小:1.19 MB

页数:24页

时间:2020-03-26

Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt_第1页
Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt_第2页
Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt_第3页
Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt_第4页
Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt_第5页
资源描述:

《Linux操作系统应用 教学课件 ppt 作者 潘志安电子课件 kj11_3.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、11.3子情境:GDB的使用Linux操作系统应用学习情境11Linux下的编程任务描述学习Linux编程设计一个计算1~50和1~100累加值的程序。运行结果与预想不符,使用GDB调试工具帮助查错。任务实施流程浏览“相关资讯”任务准备初始源代码的输入与运行编译带调试信息的可执行文件启动GDB开始调试运用GDB命令,找源代码错误原因退出GDB用vi查看源程序,找出并修改错误相关资讯1GDB简介GDB调试器主要用于调试可执行文件,这个文件必须提供调试版本,包含调试信息。GDB具备如下4个方面的功能:·启动程序时,可以按照用户自定义的要求随心所欲地运行程序。·可以让被调试

2、的程序在用户所指定的断点处暂停。·当程序被暂停时,可以检查此时用户程序中所发生的事情。·动态改变用户程序的执行环境。相关资讯2GDB的启动方法-gdb调试一个用户的调试版可执行文件,一般在当前目录。-gdbcore同时调试一个调试版运行程序和core文件。3GDB调试程序的过程(1)初始化-gdb如果用户程序是一个服务程序,则用户可指定该服务程序运行时的进程ID。GDB会自动attach上去并调试它。相关资讯(2)暂停程序-设置断点-设置运行参数和环境变量-观察断点-跟踪调试命令-输入和输出重定向-设置异

3、常捕捉点-捕捉信号-改变程序运行(3)查看信息·查看数据·查看内存·查看栈信息3GDB调试程序的过程任务准备1一台装有RHEL5Server操作系统的计算机。2以普通用户帐号hbzy(密码hbzy123)登录图形化用户界面。任务实施(1)打开vi编辑器,编辑tst.c源程序文件·输入命令:vitst.c·输入下列程序,输入完毕后保存退出vi编辑器。/*tst.c*/#includeintsum(intn);main(){inti,result=0;for(i=1;i<=50;i++)result+=i;printf("result[1-50]=%d

4、n",result);printf("result[1-100]=%d",sum(100));}intsum(intn){inti,sum;for(i=1;i<=n;i++)sum+=i;returnsum;}步骤1初始源程序的输入与运行任务实施(2)编译tst.c并运行tst程序·编译:gcctst.c–otst·运行:./tst结果如图11-11所示。图11-11tst.c的初次编译和运行由图看出,gcc编译时无报错,表明编译通过。但运行tst时,第一行结果result[1-50]=1275是正确的,第二行结果result[1-100]=1244812206与

5、预想不符。步骤1初始源程序的输入与运行步骤2编译带调试信息的可执行文件任务实施输入命令:gcc-gtst.c-otst步骤3启动GDB开始调试启动GDB开始调试tst,如图11-12所示。图11-12GDB的启动信息任务实施步骤4GDB中查看文件在GDB中键入“l”(list)来查看所载入的文件tst,如图11-13所示。图11-13查看载入的文件tst查看文件按回车键按回车键任务实施步骤5设置断点步骤6查看断点情况将tst的断点设置在第18行,如图11-14所示。图11-14设置断点键入”infob”来查看设置断点的情况,如图11-15所示。图11-15查看断点任务

6、实施步骤7运行代码在GDB中键入“r”(run),如图11-16所示。图11-16GDB中运行代码从该图中可以看到,程序从首行开始运行,到断点处就暂停了(第18句还未运行)。步骤8跟踪变量值(1)第一次查看变量在GDB中键入“p(print)变量名”命令查看断点处的相关变量值,如11-17所示。图11-17第一次查看变量值任务实施步骤8跟踪变量值(2)单步执行在gdb中输入命令“n”(next),采用单步运行方式继续往下执行程序,如图11-18所示。图11-18单步执行从该图中可见,单步运行时每次只执行一句代码。(3)再次查看变量再次查看变量sum的值,如图11-19

7、所示:从该图中可见,第二次循环暂停时,显示出的sum值比前一次大1,表明已经累加了变量i的前一次值“1”,这说明for循环的执行是没有错误的。图11-19再次查看变量值任务实施步骤9删除所设断点在gdb中输入命令“d断点号”删除(delete)断点,如图11-20所示。图11-20删除断点步骤10恢复程序运行在gdb中输入命令“c”(continue)把剩余还未执行的程序执行完,如图11-21所示。图11-21恢复程序运行步骤11退出GDB任务实施键入“q”(quit),退出GDB调试,返回终端的系统提示符。如步骤12源代码查看并修改再次用vi编辑器

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

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

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