- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 调试 9.1 简介 9.1.1 编译 9.1.2 链接 9.1.3 运行 9.2 使用调试器 9.2.1 断点 9.2.2 单步 9.3 关于调试的一个范例研究 9.4 常见错误 9.4.1 编译错误 9.4.2 运行时错误 9.4.3 逻辑错误 9.5 编程陷阱 9.6 新的IDE工具 9.7 小结 9.1 简介 调试的目的是发现程序中的bug并改正它。bug就是程序中的错误。 bug的可能来源可分为三个阶段: ①编译 ②链接 ③运行 9.1.1 编译 当键入程序时,C#开发环境执行全面的检查从而显示出程序中的错误,以防止它们继续保留下去。其中的一些错误在开始键入程序语句的时候就会被加上下划线。这些错误在术语上称为编译错误。最常见的例子有未经声明的变量,引号或括号缺失等。 9.1.2 链接 全部程序都利用库方法,有一些还利用程序员自己编写的类。仅当程序开始运行的时候才会链接这些类。但IDE在程序一键入时就会立即检查它们,以确保所有这些被调用的方法都确实存在,而且参数以正确的个数和类型进行匹配。在键入程序的时候,出错的地方也会被加上下划线。 9.1.3 运行 程序虽然运行,但第一次就像期望那样运行的情况很少。一些错误可被自动检测,然后告知程序员,比如试图用0除一个int数。其他错误则比较隐蔽,它们只是增加预想不到的行为。程序中可能有一个错误,也可能有多个错误,因此调试是必不可少的一项工作。 9.2 使用调试器 C#集成开发环境提供一个调试器。调试器是一个是一个命令行程序,帮助开发人员发现和调试基于CLR 的应用程序中的错误。它提供多种工具,其中包括单步和断点。 9.2.1 断点 断点是程序中止的地方,程序员可以使用调试器在程序中插入断点。通常,选择的最佳断点是在: 方法的开头,以检验方法的所有参数无误。 在方法刚被调用后(以检验方法正确地完成了工作)或在方法的末尾。 9.2.2 单步 调试器也允许每次执行程序的一行。这称为单步。 9.3 关于调试的一个范例研究 本程序用来证明罗密欧(Remeo)与朱丽叶(Juliet)之间 的爱情。出错代码如下: private void button1_Click(object sender, System.EventArgs e) { string left = leftTextBox.Text; string right = rightTextBox.Text; left = right; right = left; leftTextBox.Text = left; rightTextBox.Text = right; } 程序中只有一个方法,因此问题必定出在这个方法中。在方法开始的地方插入一个断点并单步执行这些语句,再将光标放在两个变量上(文本框的值)以显示它们的值。 9.4 常见错误 C#程序员很容易犯一些常见错误,主要是: 编译错误 运行时错误 逻辑错误 9.4.1 编译错误 C#开发环境在用户键入程序时将对程序执行多种检查,并在它发现有问题的地方用波浪形蓝色下划线显示。这些问题在术语上叫做编译或语法错误。 下面是一些容易引起编译错误的地方: 1. 变量名 2.方法和属性名称 3. 转换 9.4.2 运行时错误 运行时错误是在程序运行时发生的错误,但只能在运行时由系统检测。常见的运行时错误: 算术异常 数组索引 使用不存在的对象 9.4.3 逻辑错误 逻辑错误最难发现,因为它们随各个程序运行情况的不同而不同。因此没有检测这类错误的自动方式。但有两类错误是常见的。 正确初始化变量。 为事件提供处理时,很容易出现失败。 9.5 编程陷阱 上面已经讨论了许多常见错误的原因。 9.6 新的IDE工具 要插入或移去断点,单击左边的灰色条。Debug菜单提供移去全部断点和单步执行程序的选项。 9.7 小结 调试就是在程序中发现错误(bug)并改正它们。 C#集成开发环境提供一个“调试器”程序。 断点是程序暂时中断的地方。 单步是观察整个程序的执行流程的过程。 变量值可在断点或单步过程中显示。 * *
您可能关注的文档
- %BF互联的能力开放与微博相关机会探讨-20101116.ppt
- (1-2编写算法程序习题分析).ppt
- (第二部分:智能机Android平台操作).ppt
- (销售公司)HSE基础知识(08站内授课版).ppt
- (修改后)临湘市技监局通讯解决方案.ppt
- (资料库系统).ppt
- “LG手机日” 大型活动策划参考.ppt
- 《单片机原理与应用》汇编语言程序设计2.8.ppt
- 《谷歌Android UI设计技巧》第三部分:框架特性.ppt
- 《谷歌Android UI设计技巧》共五部分(合集).ppt
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及完整答案(名师系列).docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案(培优).docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案(基础题).docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案(实用).docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案(模拟题).docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案【研优卷】.docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案【精练】.docx
- 专题04 推理、主题探究类选择题答题技巧与模板构建(原卷版)(2025中考历史).pdf
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷及参考答案【模拟题】.docx
- 教科版科学三年级下册第三单元《太阳、地球和月球》测试卷【预热题】.docx
文档评论(0)