2022年程序调试步骤 2.pdf

上传人:H****o 文档编号:33395699 上传时间:2022-08-10 格式:PDF 页数:10 大小:1.02MB
返回 下载 相关 举报
2022年程序调试步骤 2.pdf_第1页
第1页 / 共10页
2022年程序调试步骤 2.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年程序调试步骤 2.pdf》由会员分享,可在线阅读,更多相关《2022年程序调试步骤 2.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、调试程序在编写较长的程序时, 能够一次成功而不含有任何错误决非易事,这需要进行长期大量的练习。 编写的程序若已没有编译错误,可以成功运行。 对于程序中的错误, VC 提供了易用且有效的调试手段。 对于附录中的简单程序, 是对110求平均数, 但是运行结果为5, 需要进行调试找出错误原因,步骤如下: 步骤1:右击工作栏,选择“调试”出现调试工具栏,如下图: (1)Restart (Ctrl+shift+F5):此debugger 功能将从程序的开始(第一有效行)处全速执行, 而不是从当前所跟踪的位置开始调试, 这时所有变量的当前值都将被丢弃,debugger会自动停在程序的main()开始处.

2、这时如果选择Step Over(F10)就可以逐步执行main()函数了. (2)Stop Debugging (Shift+F5):此debugger 功能将终止(所有)调试,并返回到常规编辑状态. (3)Break(此功能常常在遇到调用函数的语句时可见 .): 此功能将在调试过程中的debugger 当前位置挂起程序的执行, 然后就可以在调试状态一修改程序的代码, 接着可以用 Apply Code Changes (Alt+F10) 来应用修改的代码到正在调试的程序当中. 如果, 当前(需要, 待)可以(从DOS 等窗口)输入值, 挂起后将不能再输入. (4)Apply Code Chan

3、ges (Alt+F10): 此功能可以在程序正在调试程序过程中应用(挂起)修改后的源代码. 如, 选择Break功能并修改代码后, 只要选择Apply Code Changes (Alt+F10) 就能将修改后的代码应用到正在调试的程序当中 . (5)Show Next Statement (Alt+Num*): 此功能将显示程序代码的下一条语句, 如果源代码中找不到, 则在Disassembly窗口中显示语句. 当在Disassembly窗口中显示时, 可以单击Disassembly 返回到源代码窗口. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

4、- - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - (6)Step Into (F11): 此功能可以单步进入到在调试过程中所跟踪的调用函数的语句的函数内部. (7)Step Over(F10): 此功能可以单步对所在函数单步调试, 如果调试的语句是一个调用函数的语句时, Debugger将全速执行所调用的函数, 单步(一步)通过所调用的函数,Debugger停该调用语句的下一条语句上. (8)Step Out (Shift+F11):此功能将使Debugger 切换回全速执行到被调用函数结束, 并停在该函数调用语

5、句的下一条语句上 . 当确定所调用的函数没有问题时可以用这个功能全速执行被调用函数 . (9)Run to Cursor (Ctrl+F10): 此功能将全速执行到包含插入点光标所在的行, 可以作为在插入点光标处设置常规断点的一种选择 . 注意, 当光标处不是一个有效的执行语句时此功能将不起作用 . (10)Go (F5): 此功能将全速执行程序直到遇到一个断点或程序结束,或直到程序暂停等待用户输入. 注意, 此功能最能有效的调试循环, 常将断点设置在循环体内, 重复的按F5全速执行循环体可以测试循环过程中的产生的变化 . 步骤2:选择 Step Over,开始调试程序。如下图:名师资料总结

6、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 步骤3:按Step Over( 或者F11)执行单步运行。 步骤4:当执行到某个函数后,选择Step Into ,进入该函数内部,如下图所示: (1)执行到函数total(); (2): 选择Step Into ,进入函数内部: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页

7、,共 10 页 - - - - - - - - - 步骤5:当执行到某个函数,然后执行Step over ,则跳过该函数继续往下执行: (1)执行到函数total (); (2): 执行Step Over, 跳过函数total(),执行函数average() 。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 步骤6:当进入某个函数后,执行Step Out,则跳出该函数。 (1): 进入函数total()内部: (2): 执行

8、Step Out, 则跳出函数total(): 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 步骤7:Run to Cursor :运行至光标所在行暂停。 步骤8:通过界面下方的窗口,可以查看变量的值,右下方 watch窗口可以根据需要,添加额外变量score 和stu ,以便对比观察。 (1):赋完初值后score的值如下,分配的内存地址首地址为0 x0012ff20: 名师资料总结 - - -精品资料欢迎下载 - - -

9、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - (2)运行完函数total 后sum 的值为55: (3) 运行完函数average后av的值为5, 从中可以发现是子程序average() 中语句“av=sum/n ”错误,av被除取整了。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 步骤9:断点运行 (1

10、)设在函数total()第一行和最后一行各设置一个断点,按 F9或者点工具栏中的小手, 在鼠标光标停留处设置断点,如下图: (2)选择全速运行(F5),则程序运行到断点处,在watch窗口中发现stu的地址也为0 x0012ff20,和原来score的首地址相同,这也说明了在函数调用时,如果传递方式为地址传送,则形参和实参是共用同一个内存地址的,如下图: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - (3) 再按F5, 运行

11、到total 函数末尾, 则sum 的值为55,stu的地址变为0 x0012ff48,程序中每个数组元素占4个内存单元,所以每执行一次 “stu+”,stu 的地址就增加4个单元。如下图: 步骤10:选择Stop Debugging 停止调试。 附录: #include int total(int *stu,int n); float average(int sum,int n); void main() int score10=1,2,3,4,5,6,7,8,9,10,sum; float av; sum=total(score,10); av=average(sum,10); print

12、f(Average is:%2f,av); int total(int *stu,int n) int i; float sum=0; for(i=0;in;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - sum+=*stu; stu+; return sum; float average(int sum,int n) float av; av=sum/n; return av; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁