VS的调试功能小结

巧用VS的调试功能可以帮助我们更好的理解程序,追踪变量各种值的变化等等,对循环、函数和递归的学习也有帮助。

如果你已经掌握了VS调试技巧,本文可以跳过(去年的稿qaq)。

以下内容主要摘自网络。

写在前面[1]

初学 C 语言程序设计,往往一看到自己编的程序出现错误就不知所措了。有些同学上机时,只要程序能够顺利运行,就认为大功告成,根本没想到程序还存在某些隐患。要想不犯或少犯错误,就需要了解 C 语言程序设计的错误类型和纠正方法。 C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。

语法错误:在编写程序时违反了 C 语言的语法规定。语法不正确、关键词拼错、标点漏写、数据运算类型不匹配、括号不配对等都属于语法错误,在进入程序编译阶段,编译系统会给出出错行和相应“出错信息”。我们可以双击错误提示行,将光标快速定位到出错代码所在的出错行上。根据错误提示修改源程序,排除错误。

连接错误:如果使用了错误的函数调用,比如书写了错误的函数名或不存在的函数名,编译系统在对其进行连接时便会发现这一错误。纠正方法同 1。

逻辑错误:虽然程序不存在上述两种错误,但程序运行结果就是与预期效果不符。 逻辑错误往往是因为程序采用的算法有问题,或编写的程序逻辑与算法不完全吻合。逻辑错误比语法错误更难排除,需要程序员对程序逐步调试,检测循环、分支调用是否正确,变量值是否按照预期产生变化。

运行错误:程序不存在上述错误,但运行结果时对时错。 运行错误往往是由于程序的容错性不高,可能在设计时仅考虑了一部分数据的情况,对于其他数据就不能适用了。例如打开文件时没有检测打开是否成功就开始对文件进行读写,结果程序运行时,如果文件能够顺利打开,程序运行正确,反之则程序运行出错。要避免这种类型的错误,需要对程序反复测试,完备算法,使程序能够适应各种情况的数据。

如果语法和连接错误,程序直接就跑不起来;如果逻辑错误,建议梳理思路,想想那里写错了;运行错误也不怕,多踩几次坑多积累经验,比如是不是0做了除数?是不是爆了栈?是不是数组下标越了界?指针不可用?……

L学长上周提到的“在程序里声明数组的位置”问题,就是一个很好的小tip。相信大家都能体会到数组范围大一点的时候,全局于int main里面的局部的差异了吧。

VS篇

基本操作[5]

F9/单击设置断点->F5(开始调试(运行至断点处))->F11(逐语句(遇到函数则进入函数))

shift+F5 结束调试

shift+F11 退出函数

悬停鼠标查看表达式

这个最简单了大家应该都会……

如果你把你鼠标指向你感兴趣的一个变量,你会发现事情简单多了。而且,类和结构体可以通过单击展开。这样你就可以方便快捷的找到你想查看的变量了。

https://pic002.cnblogs.com/images/2012/281842/2012100310453069.png

调试有时候很有挑战性,当你步入一个函数想看看哪块出错的时候,查看调用栈来想想值是从哪来的。另一些情况下,则需要添加一些监视表达式,或者查看局部变量列表,这通常还是花费一些时间的,但是。

设置下一条语句

https://pic002.cnblogs.com/images/2012/281842/2012100310455469.png

一个典型的调试情况就是通过单步跟踪分析为什么一个函数调用失败了。当你发现一个函数调用的另一个函数返回错误的时候你会怎么做?重启调试?有更好的方法。拖动这个黄色的语句标识到你想下一步执行的语句前就可以了。比如你刚才失败的那块,然后步入。

编辑然后继续

了解即可。

https://pic002.cnblogs.com/images/2012/281842/2012100310460339.png

调试一个复杂的程序的时候,在一个被调用很多次的函数处发现一个错误,但又不想浪费时间停下来、重新编译然后重新调试。没问题,可以仅仅在该处改正代码然后继续单步,VS会修正程序,然后继续

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 本章主要介绍了如何使用Python和一些常见的AI框架来构建一个简单的聊天机器人,包括: 1. 如何使用Python编写一个简单的聊天机器人,并且了解基本的自然语言处理技术; 2. 如何使用ChatterBot框架来实现一个基于规则的聊天机器人,可以根据预先定义好的规则进行回答; 3. 如何使用Seq2Seq模型来实现一个基于神经网络的聊天机器人,可以根据给定的问题生成相应的回答; 4. 如何使用Transformer模型来实现一个更加高级的聊天机器人,可以进行更加灵活和智能的对话。 通过本章的学习,读者可以了解到如何使用不同的AI技术来构建聊天机器人,并且能够根据不同的需求选择合适的技术来实现。 ### 回答2: 本章主要介绍了系统功能实现的相关内容。系统功能实现是指根据需求分析的结果,结合设计要求和技术要求,将系统功能进行具体的实现。在实现系统功能时,我们需要考虑以下几个方面。 首先,我们需要明确系统功能的实现目标。要清晰地了解需求分析的结果,明确功能的具体要求和实现的目标,以确保后续工作的顺利进行。 其次,我们需要选择合适的技术手段来实现系统功能。根据需求和设计要求,可以选择采用不同的开发技术和工具,如编程语言、开发框架等,来实现系统功能。同时,还可以采用模块化设计方法,对系统进行模块划分,利用模块化开发的方式来提高开发效率。 接着,我们需要编写代码来实现系统功能。根据需求和设计要求,我们可以使用选择的开发技术和工具编写代码,实现系统功能。在编写代码时,要注重代码的规范性和可读性,以方便后续的代码维护和更新。 最后,我们需要对系统功能进行测试和调试。通过对系统功能进行测试和调试,可以发现并修复系统中的问题和错误,确保系统功能的正确性和稳定性。同时,还可以进行性能测试,以验证系统功能的性能是否满足需求。 综上所述,在系统功能实现过程中,我们需要明确目标、选择合适的技术手段、编写代码、进行测试和调试。通过这些步骤,可以有效地实现系统功能,并确保实现的功能符合需求和设计要求。 ### 回答3: 本章主要介绍了系统功能实现的相关内容。首先,系统功能实现是在需求分析阶段基础上的一项重要工作。通过对需求文档进行细化和拆解,将高层次需求转化为具体的功能模块,并对其进行分析和设计,以便于实现。 其次,系统功能实现需要具备相应的开发技术和工具。开发技术包括编程语言、框架、数据库等,选择合适的开发技术有利于提高系统的性能和可维护性。而工具则是辅助开发的软件,如IDE、调试器等,可以提高开发效率和质量。 另外,系统功能实现需要遵循一定的开发流程。常用的开发流程包括需求分析、设计、编码、测试、部署等环节。在每个环节,需要进行相应的工作,如需求分析中进行模块拆解和功能设计,编码阶段进行代码实现等。同时,还需要进行不同层次的测试,如单元测试、集成测试等,以保证系统的功能实现质量。 最后,系统功能实现还需要考虑到系统的可扩展性和可维护性。在设计和实现中,需要采用合适的架构和模式,以便于后期的功能扩展和维护。同时,还需要注重代码的规范和可读性,方便团队成员之间的合作和交流。 综上所述,系统功能实现是将需求转化为具体功能模块的过程,在开发技术和工具的支持下,按照一定的开发流程进行,注重系统的可扩展性和可维护性。通过系统功能实现,可以实现需求的预期效果,提高系统的性能和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值