- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX 系统开发- sdb 命令使用:程序执行控制
我们说程序调试的主要目的是观察变量的变化情况。 但如果程序就一直不停地运行直至它终
止或出错时才停下来的话, 将没有机会去观察任何变量。 因此, 如何有效地控制程序中各语
句的执行, 使之在适当的时候暂停下来, 待调试人员在显示或设置了某些存储单元的值之后
再从停下的地方继续执行下去, 是调试程序应具有的一项基本功能。 在这一节中我们就来具
体介绍如何控制程序的运行。
对程序执行控制的第一个问题是设置断点。 一个断点实际上就是程序中某行语句。 当程序执
行到这条语句时控制会重复返回到 sdb,由此提供给用户进行其他操作,如显示变量值的机
会。
1.断点的设置和删除
在 sdb 中设置断点的方法比较多。但基本是 b 命令的变种。例如, 我们可以使用如下语句在
main() 函数的第一个可执行行(非变量定义这类语句)设置一个断点:
* main:b
也可以直接用行号来设置断点。例如,在 myprog.c 中,第 10 行是 main() 函数中的第一个可
执行语句,则使用如下命令也能达到同样的效果:
* 10b
注意这是在 myprog.c 为当前文件的情况下进行的。
如果直接输入:
* b
命令, 则可将当前行设成是一个断点。但是若当前行不是一个可执行语句, 那么 sdb 将把当
前行之后的第一个可执行语句处设置一个断点。
在设置完断点之后,为了解程序中设置有哪些断点,可以使用 B 命令:
* B
0x80483f0 myprog.c:10 main+0x8
0x80483f7 myprog.c:11 main+0xf
0x8048407 myprog.c:12 main+0xlf
0x8048440 myprog.c:9 TestInput
0x8048447 myprog.c:10 TestInput+ 0x7
0x804482 myprog.c:13 TestInput+ 0x42
在设置完断点之后要将其删除,可以使用 d 命令。如:
* main:d
sdb 将把在 main() 函数中设置的第一个可执行行上的断点删除。如果直接使用 d 命令, sdb
将逐个列出所有断点并询问用户是否删除之。回答 y 断点将被删除。使用 D 命令则可删除
程序中设置的所有断点。
2.sdb 中启动程序的运行
在设置好所需的断点之后我们就可以重新启动程序的运行了。这可以使用 r 命令。如:
* r 111 2
BREAKPOINT process 554 function main() in myprog.c
10: for(i=1;iargc:i++)
*
sdb 将在 main() 函数中设置第一个断点处停下来并显示该行的语句。 r 后面给出的是传给可
执行程序 myprog 的两个参数。因此上述命令同在 shell 提示符下输入:
$ myrprog 111 2
是相同的。不同的只是在 sdb 中程序的执行会在断点处停下来。
如果只输入
* r
命令, sdb 使用最近一次执行调试程序时给它提供的参数来启动之。如果想不带任何参数来
重新启动程序的运行,可使用
* R
命令。
3.控制程序的单步或者连续执行
在用 r(R) 命令启动程序的运行之后, sdb 将在第一个断点处暂停程序的运行。此时断点行成
为当前行,但并未被执行。此时我们可以在 sdb 的星号( *) 提示符下输入前面已介绍过的或
后面将要介绍的各种命令。 当然最重要的是显示那些关键变量的值, 以了解程序的运行
您可能关注的文档
最近下载
- 疾病康复学课程标准(2020整理).pdf VIP
- 好书推荐《我胆小如鼠》导读阅读分享读后感PPT课件.pptx VIP
- 骨外科三基题库.pdf VIP
- 2023_昆仑技创_用户手册_TPC1071Ni_V1.1_0705.pdf VIP
- 造价人生:专访某建设单位造价人员赵工(真实).pdf VIP
- 大学生职业生涯发展展示.pptx VIP
- wiscontrol变频器说明书 .pdf VIP
- 500强企业绩效考核指标汇总(非常实用的)(精品).doc VIP
- 中图版(新教材2019版)高中地理 选择性必修1地理知识点总结.pdf VIP
- 《大学生职业生涯规划与就业指导》 项目七 不忘初心,怀梦笃行.pptx
原创力文档


文档评论(0)