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

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. [置顶] HDFS文件内容追加(Append)

    HDFS设计之处并不支持给文件追加内容,这样的设计是有其背景的(如果想了解更多关于HDFS的append的曲折实现,可以参考<File Appends in HDFS>:http://bl ...

  2. 在git彻底删除commit记录的方法是什么?

    在github上,如果非默认分支的话,直接用以下方法: git reset --hard <commit_id> git push origin HEAD --force 如是默认分支,需 ...

  3. 宏定义&CodeBlocks&Glib

    一.gcc的参数中-Dmacro             等价于代码里   #define macro -Dmacro=value  等价于代码里   #define macro value -Uma ...

  4. Cortex-M3学习日志(一)-- GPIO实验

    因为项目所需,所以不得不开始研究M3,我用的是NXP公司的LPC1768这个芯片,它是具有三级流水线的哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线,还包含一个支持随机跳转的 ...

  5. ceph伦理概念

    Preface: CEPH: THE FUTURE OF STORAGE(未来存储) Ceph was made possible by a global community of passionat ...

  6. var 与function的权重浅析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. ReactNative实现通知监听事件

    事例1: 只在rn里面发送和接受消息. A界面: import {DeviceEventEmitter} from 'react-native'; //... componentDidMount(){ ...

  8. Cocos2D-x权威指南:核心类成员CCNode

    节点类(CCNode)是Cocos2D-x中的主要类,继承自CCObject.继承关系如图3-2所看到的. 不论什么须要画在屏幕上的对象都是节点类. 最经常使用的节点类包含场景类(CCScene).布 ...

  9. Java实现串口通信的小样例

    用Java实现串口通信(windows系统下),须要用到sun提供的串口包 javacomm20-win32.zip.当中要用到三个文件,配置例如以下: 1.comm.jar放置到 JAVA_HOME ...

  10. C#操作XML存取创建XML

    using System.Xml; #region 生成XML文档 /// <summary> ///  /// </summary> /// <param name=& ...