从代码角度,带你手把手调试(上)

简介: 从代码角度,带你手把手调试(上)

1.调试的快捷键


技巧:
ctrl+H:替换
ctrl+F:查找
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+/ 块注释代码(按两次取消)
Ctrl+K+C 注释代码
Ctrl+K+U 取消注释代码
Ctrl+G 跳转到指定行
F5: 启动调试
Ctrl+F5: 开始执行(不调试)
Shift+F5: 停止调试
Ctrl+Shift+F5: 重启调试
F9: 切换断点
Ctrl+F9: 启用/停止断点
Ctrl+Shift+F9: 删除全部断点
F10: 逐过程
Ctrl+F10: 运行到光标处
F11: 逐语句
复制代码


2.调试的基本步骤

image.png



3.Debug版本和Release版本

Debug版本:调试版本 -可以调试

Release版本: 发布版本-供用户使用的,不能调试




问:测试员测试的是什么版本?

->测试员测试的是release版本,站在用户的角度




4.F9设置断点,F5跳到断点处,先按F9设置断  点然后按F5跳到断点处

若有多个断点,按F5跳到下一个断点  这样可以跳过不需要调试的代码




5.设置条件断点

首先需要设置断点(F9),右键断点

image.png

当满足某个条件才触发断点



打多个断点时:先执行第一个断点内的内容,再执行下一个断点

若想从一个位置跳到另一个位置  ---- 先打一个断点 ->跳到该位置后,去掉断点,再打另一个



6.一个有问题的代码

int main()
{
  int i = 0;
  int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  for (i = 0; i <=12; i++)
  {
    arr[i] = 0;
    printf("hehe\n");
  }
  return 0;
}
复制代码


执行结果:死循环打印hehe


为了发现问题:打印第几次打印


int main()
{
  int i = 0;
  int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  for (i = 0; i <=12; i++)
  {
    arr[i] = 0;
    printf("hehe\n");
    printf("第%d次打印\n",i);
  }
  return 0;
}
复制代码

image.pngi不能变为12


调试结果:

image.png将第数组元素下标为12的值也改成0时,i也恢复为0,所以造成了死循环


目录
打赏
0
0
0
0
1
分享
相关文章
接口测试平台代码实现85: 多接口用例-25:博主巧计求点赞,优化章节水漫天
本节课会对多用例模块进行最后的优化等,内容不多。本教程基本都是最浅显和基础的一期产品,后续能优化到什么程度,全看各位的造诣了。
接口测试平台代码实现85: 多接口用例-25:博主巧计求点赞,优化章节水漫天
怎么阅读源码【调试观察源码】
怎么阅读源码【调试观察源码】
200 0
怎么阅读源码【调试观察源码】
【第22期】 一文读懂前端调试利器whistle
【第22期】 一文读懂前端调试利器whistle
165 0
x265探索与研究(五):如何用VS调试x265?
<h1 style="text-align:center">如何用VS调试x265?</h1> <p><br></p> <h2>1、设置cli为启动项</h2> <p><br></p> <p>        用VS打开工程项目,如下图:</p> <p><br></p> <p style="text-align:center"><img src="http://img.blog.
3737 0
《优化接口设计的思路》系列:第一篇—接口参数的一些弯弯绕绕
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。
98 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等