关于调试技巧,个人觉得还是很重要的,于是把自己之前写过的总结拿出来,修修补补再复习一下。

F7 单步跟踪法

  这是大家都最常用的调试方法,可以一步一步去跟踪程序的运行方向,以及各种变量的变化情况,当发现错误后,用 ctrl+F2 结束调试,更改错误,注意的是 F7 调试时数组不要开得过大,虚拟内存占用过多时,程序运行会非常慢,甚至死机。

Watch 的小技巧

  首先,不用说都知道 ctrl+F7增加 Watch 变量至最下端,鼠标指向可以添加至 watch任意位置,其次,对于数组,在 watch时一定特别麻烦,很长很长,其实有一种很巧妙的方法,就是 watch   a[i],也就是说, watch你认为可能出错的地方,把多个排成一列方便查错,同时 watch数组套变量也可以随时跟踪数字的改变情况。此外,如果有ansistring,就在watch时先变为string,因为ansistring是无法调试的。关于指针的跟踪,可以把所指单元赋值给一般的变量后再watch。

F4 光标跟踪法

许多时候,你可能将错误改正后发现还是有错误,这时候,前面又确定是没有错误的了,这时候,就可以将光标移至正确段落后,按下 F4,就可以从该处开始调试。此外,在一个循环内定一点,用F4 调试,可以一整个循环跟踪。

F8 主程序调试法

  F8的一个特点就是调试的时候可以跳过过程,不进入跟踪,与F7 配合使用,可以节省出许多调试时间。比如发现一个过程有错,再跟踪进去检查。

F8断点调试法

  按下ctrl+F8,我们就可以看到出现了一行红色的条,那么我们在运行的时候程序就会运行到这里停止,这时候,可以F7调试,或watch变量,还有就是断点可以多个断,一般用F4就可以替代断点调试,但是当F4坏掉时,F8断点也不失为一种好的调试方法。

关键字检查法

当你一个程序无输出时,又不知道哪个环节出了错,就可以在认为可能有错的地方设置关键字,比如输出 wrong1,wrong2,假如一处没有按你所写的输出,则在此处关键字与上一处关键字处出错。

静态查错法

  个人感觉,静态查错才是程序调试的最高境界,当编完程序,首先应该做的不是用测试数据去测,而是自己再仔细阅读一遍程序,看看是否按照自己的意思来进行,有没有语法错误,或是变量名错误,然后才进入调试。

——2013年10月30日

Noip2013调试技巧的更多相关文章

  1. 【工具】VS2010常用调试技巧(1)

    调试是一个程序员最基本的技能,其重要性不言自明.不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件.本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道 ...

  2. Visual Studio高级调试技巧

    1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...

  3. 【转】你所不知道的Android Studio调试技巧

    这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...

  4. VS调试技巧,提高调试效率(转):

    如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们. 它们学起来很容易,能帮你节省很多时间. 运行到光标(Ctrl+ F10) 我经常看见人们是这样来调试应用程序的: 他们在应用程序需要调试的代码 ...

  5. iOS各种调试技巧豪华套餐

    转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...

  6. xcode调试技巧

    xode报错有时挺无厘头,完全不知道哪里出的问题,最后还得用排除法,记录一些工作中认为有用的调试技巧 1.左侧视图点断点视图,左下角点加号,选择exception breakpoint,类型选c++, ...

  7. 你所不知道的Android Studio调试技巧

    转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...

  8. Visual Studio原生开发的20条调试技巧(下)

    我的上篇文章<Vistual Studio原生开发的10个调试技巧>引发了很多人的兴趣,所以我决定跟大家分享更多的调试技巧.接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧(接着上 ...

  9. Visual Studio原生开发的10个调试技巧

    这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧.我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧.(如果你是工作在托 ...

随机推荐

  1. wdcp升级php和mysql

    安装没什么好说的,按照wdcp官方去搞就行了,这里如果是centos系统建议使用rpm安装方式附件如下(这里包含了本文后面用到的三个文件) http://download.csdn.net/detai ...

  2. Linux网络管理——子网掩码

    1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...

  3. Linux 二进制包安装MySQL的一些问题

    第一步:安装相关的依赖yum install perl-Data-Dumper 第二步:初始化mysql数据库的内部信息./scripts/mysql_install_db --basedir=/us ...

  4. KPI考核

    编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! KPI考核,Key Performance Indicator的缩写,指的是关键绩效指标考核法. 中文名 KPI考核 外 ...

  5. QWebView 显示本地HTML 文件

    QWebView 显示本地HTML文件的时候,如果直接使用 webView->load(QUrl(QString("file:///c:\\a.html")); 可能会导致a ...

  6. AndroidAutoLayout 屏幕适配

    https://github.com/hongyangAndroid/AndroidAutoLayout

  7. RAID详细介绍

    RAID详细介绍 RAID 0 又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...

  8. poj1665

    #include <stdio.h> #include <stdlib.h> #define pi 3.1415926 int main() { float dia,tim; ...

  9. 剑指offer 22 栈的压入、弹出序列

    class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { bool resu ...

  10. Cookie、Session

    Cookie.Session Cookie 保存在浏览器端. 4kb 只能保存字符串,还不能是中文. 获取:Request.getCookies(); 设置时间:setMaxAge(); 小于零是浏览 ...