当前位置:网站首页>调试方法和技巧详解
调试方法和技巧详解
2022-06-30 09:36:00 【菠萝猫yena】
推荐一个软件,禅定空间,放下手机,珍惜时间,为未来搏一搏,为了未来美好的生活,冲鸭!!!!
前言
代码中的bug难以避免,尤其是能运行但结果不对的时候,简直让人痛不欲生 罒ω罒 。调试,是一个程序员必须具备,并且勤加练习,以熟练掌握的技能。本章将介绍代码调试的方法和技巧。一定要多见见世面,观察别人的优秀代码,多写多练呀!
提示:以下是本篇文章正文内容,下面案例可供参考
1. 什么是调试
调试,英文名Debug,即除错,是发现和减少程序中的错误的过程。本文用的编译软件是VS,带着大家如何发现并改正错误。
2. 调试步骤
调试步骤分为:发现错误,对错误进行定位,分析错误产生的原因,解决错误,重新调试。这里,大家一定要注意,我们的思维要严谨,不能乱改,有步骤,有预测地对程序进行分析才会提升我们的动手和思维能力。
2.1 发现错误
程序中的错误有以下几类。
2.1.1 编译型错误
也称语法错误,我们可能粗心地少写一个冒号,多加了一个括号,这个错误最为简单,程序会标出错误所在的行数,我们进行改正即可。
2.2.2 链接型错误
从代码到可执行程序,需要经过编译到链接的阶段,一般的链接型错误为:无法解析的外部符号,分为未定义标识符或者标识符书写错误两种情况。

此时,若未标记错误所在位置,可通过Ctrl+f,输入待查找的部分,就能获取代码的位置。
2.1.3 运行时错误
最让人头疼的错误,编译没问题,可就不是想要的结果,这个时候,如果找错误太困难,就需要一步步调试来找出错误。
2.2 调试环境准备
2.2.1 debug 与 release
在下图,我们能观察到,编译环境有debug与release两种。
接下来,我们介绍两种环境的功能。
debug ,测试版本。为程序员使用,包含各种调试信息,支持程序员及测试人员发现错误并一步步调试程序。
release ,发布版本,为用户使用,保证速度大小最优,方便用户使用,没有调试信息,不允许调试。
如下图所示,同一个程序,release版本比debug版本所占的内存要小很多。

2.2.2 调试所需的快捷键介绍
2.2.2.1 F5,启动调试
一般与F9组合使用。如下图所示,按F5,如果只是调节亮度的话,需要fn键与f5一起使用,才会显示f5键原本功能。
2.2.2.2 F9,创建取消断点
断点的作用为,有了断点之后,点击F5会使调试直接跳到下一个断点处,目的是跳过确定没问题的代码段,只调节可能出现错误的代码段。
实战操作如下
在43行打了一个断点,按一次F5,可使代码调试直接从main跳到第43行。

2.2.2.3 F10,一步一步观察
依次点击 调试–>窗口–>监视–>选择监视窗口–>输入想观察的变量–>回车,即可在调试过程中,观察相关变量的变化。这是调试的关键。我们一定要头脑清晰,清楚每一步,变量会有什么变化。一旦变量的变化与预期不符,我们就能发现错误。
按动F10,观察i的变化
按动F10后,观察j的变化。
2.2.2.4 F11,进入到函数内部
如下图所示,在遇到函数时,按动F10,不会进入到函数内部
按动F10后,直接跳到下一行代码,不进入函数。
此时,若需要进入函数内部观察,就要按动F11进入函数内部。
按动F11后,进入Display函数内部观察。
另外,若只是运行程序不进行调试,则可通过Ctrl+F5运行。
3.了解F1-F12快捷键原始功能
3.1 F1,Help
F1属于帮助按键,当打开软件发现不会用,按F1键可以呼出使用说明视窗,可以观看使用手册。
3.2 F2,重命名
当选择一个档案、文件、资料夹时,选中任意一个文件,按下F2都可以启用重命名,这个功能还是相当方便的,
3.3 F3,寻找
当在网上看榜单,千百笔资料让人眼花缭乱,大多数的人都会用Ctrl+F键,其实只要按F3键,浏览器就会弹出“搜索视窗”,通过搜索关键词,可以帮助我们快速寻找。当你需要精确查找某个文件时,不需要繁琐的去打开某个界面,F3可以一键调出某个搜索界面
3.4 F4,地址栏表单
许多人都知道Alt+F4可关闭已经打开的串口,不过F4在IE浏览器及档案管理都可以开启地址栏,方便回顾之前到访的资料夹,网页。
3.5 F5,刷新
适用于所有浏览器和桌面等部分程序
3.6 F6,地址栏
按下该键可以快速将贯标达到地址栏,方便快速输入URL。
3.7 F7,特别功能
其实F7键在Windows系统上没有特殊功能,不过在文书处理程式,如Word、Excel时,按下可以检查愈发错误,进行拼写检查。
3.8 F8,安全模式
当电脑发生问题,无法进入Windows系统时,可在开机时不断按F8键,进入电脑安全模式。进入安全模式,可以解决一些电脑疑难问题,不过如果不懂电脑,建议不要乱进。
3.9 F9,特别功能
F9键在Windws系统上也没有特殊功能,不过一样在文书处理程式Word中能重整文件、收件软件Outlook中可以重新首发邮件及Windows播放器Medis Player有调低音量功能。
3.10 F10,功能列表
F10键可以快速打开功能列表,其配合Shift键可打开鼠标右键快捷菜单。在Windows播放器Media Player有调高音量功能。
此外,在电脑bios设置中,设置完成后,按F10键可以保存当前设置。
3.11 F11,全屏幕
把视窗或浏览器以全屏幕显示,可以按F11键。
3.12 F12
在windows中没有任何作用。但在word中,按下它会快速弹出另存为文件的窗口;
总结
刚开始接触调试,肯定会有不熟悉的地方,熟能生巧,不能放弃,量变很快就能产生质变。为了我们的未来,继续冲呀!!!!
边栏推荐
- 磁悬浮3D灯
- ABAP time function
- Forrester senior analyst: five important trends in the development of the hyper convergence market
- Flume learning 4
- Appium自动化测试基础 — 12.APPium自动化测试框架介绍
- Design of mfc+mysql document data management system based on VS2010
- 工作小记: sendto失败 errno 22
- Good partner for cloud skill improvement, senior brother cloud of Amazon officially opened today
- Quick completion guide for manipulator (4): reducer of key components of manipulator
- Xlnet (generalized autorefressive trainingfor language understanding) paper notes
猜你喜欢

Abstract classes and interfaces

Cobbler Automated Deployment

Forrester senior analyst: five important trends in the development of the hyper convergence market

【JVM】G1垃圾回收器简述

Self service terminal handwritten Chinese character recognition input method library tjfink introduction

近期学习遇到的比较问题

Add / delete query of topic

Plan the IT technology route for the new year? Let's learn about Gartner infrastructure hype cycle

布隆过滤器

Hospital integration platform super fusion infrastructure transformation scheme
随机推荐
MySQL index and data storage structure foundation
事件委托的使用与说明》
NER – Named Entity Recognition Summary
MySQL internal component structure
Brève description du collecteur d'ordures G1
Network based BGP
Flutter 中的 ValueNotifier 和 ValueListenableBuilder
Add / delete query of topic
Critical applications and hyper converged infrastructure: the time has come
Forrester senior analyst: five important trends in the development of the hyper convergence market
Slf4j: failed to load class "org.slf4j.impl.staticloggerbinder"
How to build a private cloud and create a hybrid cloud ecosystem?
ABAP-时间函数
[Ubuntu redis installation]
Redis docker 主从模式与哨兵sentinel
Comparison problems encountered in recent study
关于字符串的split和join操作
2021-07-26
Shell script multi loop experiment
直播带货源码开发中,如何降低直播中的延迟?