【答疑释惑】菜鸟怎么调试简单程序?

首先公布昨天留的课后作业答案的宏定义函数的答案

#define f(a, b, x) a*x+b printf("%d, %dn", f(3,2,1), f(6, 5, f(3, 2, 1)));答案:5,25

最近发现好多小伙伴在群里问大段的程序代码问程序问题出在哪里?

小编针对这种情况专门整理一篇如何调试程序,其实这个问题很简单,

下面讲讲如何使用vc来调试程序,那个简单的例子做示范。

1.认识下调试重要的几个键:

  • F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点.
  • F5调试状态运行程序,程序执行到有断点的地方会停下来.
  • F10执行下一句话(不进入函数)step out
  • F11执行(进入函数)step in
  • CTRL+F10运行到光标所在行

F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面.

2.单步调试

打开你要调试的代码工程,首先使用F9或者鼠标点击设置想要调试的程序的断点,例如上图。

然后直接F5,程序就会直接运行直到断点处停止。使用快捷键F10进行单步执行调试,每一步可以从下方的窗口实时看变量的值。

如果当前运行到一个函数调用,你可以使用F11(step into)直接运行到函数里面进行调试.

3.使用调试工具栏和调试窗口

调试过程中,如果没有记住快捷键,可以充分利用调试工具栏。

如果想一次查看多个变量的值,可以使用底部的调试窗口,例如:watch窗口里面可以直接添加变量名字查看实时的值。Locals窗口可以查看当前函数中变量的值。

程序调试方法小结 上面仅介绍了程序调试的基本方法。对需要观察其运行过程的程序,可以这样做:

  • 增加必要的断点(当然,嫌疑解除后去除断点);
  • 如果必要,添加监视,以便于观察一些表达式的值;
  • 用Step Into、Step Over、Step Out或Run to Cursor等的组合,跟踪程序执行的过程
  • 在运行过程中,和自己对运行结果的预期结合起来,思考程序可能出现的问题。
  • 需要退出程序时,使用调试菜单中的“Stop Debugging”选项终止执行。这时再修改程序。
  • 如果程序执行异常,一定要告诉自己:程序中一定有bug,不是机器的错,我得找出bug来,Bug也一定会被你找出来。 欢迎小伙伴针对自己用的编译器写篇教程给小伙伴去使用 如果还觉得回答不够彻底就直接加群问小编或者在公众号直接留言

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学 Web 前端

从零开始学 Web 之 移动Web(五)touch事件的缺陷,移动端常用插件

我们在上面《页面分类》的项目中,对 tap 事件的处理使用的是 touch 事件处理的,因为如果使用 click 事件的话,总会有延时。

472
来自专栏乐沙弥的世界

使用PL/SQL Developer剖析PL/SQL代码

    PL/SQL代码性能瓶颈可以通过DBMS_PROFILER包在命令行的方式下进行剖析来直接获得。对于比较复杂的代码而言,使用图形化的界面来进行剖析无疑是...

671
来自专栏数据小魔方

动态图表7|组合框(index函数)

今天跟大家分享动态图表7——组合框(index函数)! 组合框制作图表,其步骤与列表框相同,唯一的不同点在于,组合框控件,提供用于选择的下拉菜单,在未选择的情况...

3034
来自专栏Android开发指南

Android Training Note

3336
来自专栏守望轩

Visual Studio 2008 每日提示(十一)

#101、块缩进和智能缩进的差异 原文链接:what’s the difference between smart indenting and block i...

2673
来自专栏Material Design组件

后台系统设计(上篇:选择)

在单个选项下,存在多组互斥选项,且互斥选项组之间存在一定关系,可以考虑混用分段控件和常规按钮,由于分段控件在视觉上占用更大的面积,故给人在层级上更加置前。

982
来自专栏macOS 开发学习

Mac OSX 开发基础控件学习之 NSOutlineView

在开发基于osx的Application的过程中,当我们需要显示一组列表结构的数据时,比较容易想到的控件是NSTableView;但如果你显示的数据有层级结构...

792
来自专栏Android开发指南

6.网络编程

31113
来自专栏liulun

基于.net开发chrome核心浏览器【五】

一:本篇将解决的问题 本章主要为了解决一下几个问题: 1.JsDialog的按钮错位的问题   我们开发出的浏览器,在有些操系统上调用alert,confirm...

1896
来自专栏DeveWork

添加WordPress评论输入邮箱实时显示Gravatar头像功能

这个不是什么新鲜的功能了,这个功能即是实现当留言评论时,你输入email后,就会实时显示你的Gravatar头像。对于提高用户体验是有非常的帮助,特别是用户评论...

1815

扫码关注云+社区