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

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

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,所以造成了死循环


相关文章
|
4月前
|
缓存 前端开发 JavaScript
【第22期】 一文读懂前端调试利器whistle
【第22期】 一文读懂前端调试利器whistle
96 0
|
1天前
|
安全 程序员 uml
程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 !
编写技术文章是程序员分享经验和记录学习成果的重要方式。 为了让写作变得更轻松,有许多实用工具可以帮助提升效率,比如 Markdown 编辑器、画图工具等。 接下来,笔者将介绍四款简单实用的工具,帮助程序员更轻松地编写技术文章。
116 79
程序员编写技术文章需要的四个辅助神器 ,强烈建议收藏 !
|
4月前
|
运维 安全 测试技术
测试基础 学习测试你必须要知道的基础知识
测试基础 学习测试你必须要知道的基础知识
27 3
|
4月前
|
程序员 编译器 C语言
编程最重要的技术之一 — 调试(以C语言代码为例)
编程最重要的技术之一 — 调试(以C语言代码为例)
72 0
|
4月前
|
测试技术
面试题8: 如何确定测试需求的关键场景和细节?
面试题8: 如何确定测试需求的关键场景和细节?
|
9月前
|
测试技术
【测试平台系列】第一章 手撸压力机(十)-定义场景
上一章,咱们对http请求进行了一些优化,本章节我们将组成场景去运行。首先场景就是一连串的http接口的请求,我们使用list(列表)来组装成一个场景
【测试平台系列】第一章 手撸压力机(十)-定义场景
|
9月前
|
测试技术
【测试平台系列】第一章 手撸压力机(八)- 实现testobject接口
上一章中我们已经启动了一个/engine/run/testObject/接口,但是我们还没有具体的实现该接口,本章我们就来实现一下该接口。
【测试平台系列】第一章 手撸压力机(八)- 实现testobject接口
|
9月前
|
测试技术
【测试平台系列】第一章 手撸压力机(九)- 封装函数
将我们的一些代码封装到函数和方法中,这样我们看来代码可读性更好。如果发现bug,也可以更好的进行追踪。
|
程序员 Windows
适合初学者的超详细实用调试技巧(上)二
适合初学者的超详细实用调试技巧
63 0
|
程序员 编译器 C++
适合初学者的超详细实用调试技巧(上)一
适合初学者的超详细实用调试技巧
73 0