大家好,欢迎来到IT知识分享网。
目录
1.BUG的由来
2.调试的基本步骤
3.Debug和Releas版本
4.vs环境下的调试
5调试重要性的一个实例
6.优秀的代码应该是怎样的如何写出优秀的代码
1.BUG的由来
1937年,一个年轻的美国小伙找到IBM公司要了200万叨做计算机,第一台成品取名为“马克1号”,写代码的是一个小妮·雷斯·霍波。有一天,他在调试程序时出现故障,经过一阵子周折,发现有只飞蛾被烤糊在两个继电器触点的中间导致短路。于是把程序故障统称为“臭虫BUG”。从此这只虫子名垂千古,永远的保存在了华盛顿的美国国家历史博物馆中。
2.调试的基本步骤
- 发现程序错误的存在——>能够发现错误的三种人(1.程序员2.测试人员3.用户)
- 以隔离和消除等方法对错误进行定位
- 确定错误产生的原因
- 提出纠正错误的解决方法
- 对错误予以改正,重新进行测试
3.Debug和Releas版本
Debug——被称为调试版本,包含调试信息,并且不做任何优化,便于程序员调试
Release——被称为发布版本,进行了各种优化,使得程序在代码运行速度和代码大小上都是最优的以便于用户的更好使用
4.(1)vs测试环境下的调试
- Ctrl+F5:开始执行不调试
- F10:逐过程——不会进入函数内部
- F11:逐语句——遇到函数会进入函数
- F5:开始调试
- F9:设置+取消断点,设置断点后可右击设置条件,用于直接进入循环。
//F5是和F9配合使用的,F5是开始执行并跳到第一个断点处。
4.(2)调试过程中如何查看到当前程序的信息
- 自动窗口:自动添加信息,自动删除信息
- 局部变量:程序中上下文的局部变量会自动添加
- 监视:可自己添加需要监视的目标
- 内存:可看到内存中的信息,内存中本来发放的是二级制的数据但是为了方便好看展示的是16进制数据
- 反汇编:c语言代码翻译过来的汇编代码
- 寄存器:寄存器中发生的变化
- 调用堆栈:可以看到函数如何调用
如何打开这些窗口:在调试起来之后点击调试窗口就会看到这些选项
自动窗口:
局部变量:与自动窗口相似不能添加只能看上下文局部变量
监视:可以自行添加内容,可以是某个变量也可以是表达式
内存:
反汇编:
寄存器:
调用堆栈:
切记一定要多动手调试!
5.调试实例
为什么会死循环呢?
原因:
- i和arr是局部变量是放在栈区上的
- 栈区的内存使用习惯是先使用高地址再使用低地址
- 数组随着下标增长,地址由低到高
经过观察arr[12]与i的地址相同,所以arr[12]=0就是i改为0所以死循环
根据研究可知vc6.0的编译器中间没有间隔的空间
gcc编译器中间留一个整型的间隔空间
vs2019上中间留两个整型的间隔空间
6优秀的代码是怎样的如何写出优秀的代码
6.1优秀的代码是怎样的
- 代码运行正常
- bug很少
- 效率高
- 可读性高
- 注释清晰
- 可维护性高
- 文档齐全
6.2优秀的代码如何写
常见的coding技巧
- 使用assert//尽量避免使用空指针
- 尽量使用const
- 养成良好的编码风格
- 添加必要的注释
- 避免编码的陷阱
const修饰指针:
1.const放在*左边:*p不能改变,即p指向的内容不能通过p来改变,但是p可以改变,p也可指向其他变量
2.const放在*右边:限制的是p,p不能改变,但是p指向的内容(*p)是可以通过p改变。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/156950.html