Sollyu

  • 捐赠
  • 关于
  1. 首页
  2. 原创文章
  3. 正文

VC、VS2005调试技巧【一】

2014年6月4日 3160点热度 0人点赞 0条评论

引言

本文主要介绍以下几方面内容:

  1. 常见编译错误
  2. VC调试器
  3. VC快捷键
  4. VC项目文件说明
  5. 环境参数的设置

常见编译错误

  • Fatal Error C1010
    unexpected end of file while looking for precompiled header directive
    这一般是由于使用了参数/Yu“stdafx.h”,意思是在每个文件中都应该使用#include来包含这个头文件。一般改正,就是在每个CPP文件中包含这个文件就可以。

  • Error C2065
    undeclared identifier
    调用的方法或变量没有定义。

  • warning C4700
    local variable ‘p’ used without having been initialized
    使用的变量未经初始化。

  • LNK2001
    unresolved external symbol “symbol”(不确定的外部“符号”)。
    如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:

    1. 一是所引用的函数、变量不存在、拼写不正确或者使用错误;
    2. 其次可能使用了不同版本的连接库。

VC调试器

调试环境的建立

在VC中每当建立一个工程(Project)时,VC会为你建立两个版本,Release版本和Debug版本(默认)。

Release版本是当程序完成后,准备发行时用来编译的版本;

Debug版本是用在开发过程中进行调试时所用的版本。

Debug 版本当中,包含着Microsoft格式的调试信息,不进行任何代码优化,而在Release版本对可执行程序的二进制代码进行了优化,其中不包含任何的调试信息。

在新建立的工程中,你所看到是Debug版本,若要选择Release版本,可以选择菜单Project中的Setting命令,这时屏幕上面弹出Project Setting对话框,在Setting For下拉列表中选择Release。

VC、VS2005调试技巧

VC、VS2005调试技巧

断点(breakpoint)

分类:在VC中,你可以设置多种类型的断点,我们可以根据断点的性质把断点分为三类:

与位置有关的断点;(F9)

与位置有关的逻辑断点——到点条件成立才断

有的时候你可能并不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时你就需要设置一种与位置有关的逻辑断点。要设置这种断点我们只需要在Edit中选中Breakpoint项,则弹出Breakpoint对话框,选其中的Location标签,在Location页面中单击Condition按钮,在Expression编辑框中写出你的逻辑表达式,如X>=3或a+b>25,最后按OK返回。这种断点主要是由其位置发生作用的,但也结合了逻辑条件,

VC、VS2005调试技巧

在在汇编代码上设立断点

有时我们需要进入程序的汇编代码,更深入地调试程序,因此要在汇编代码上设立断点。要设立这种断点我们只需选择Debug Window中的Disassembly子命令,这时汇编窗口将会出现在屏幕上。在汇编窗口中你将看到对应于源程序的汇编代码,其中源程序是用黑体字显示,下面是且对应的汇编代码。要设立断点,我们只需将光标移到你想设断点处然后点击工具条上的Insert/Remove Breakpoints按钮,此后你将会看到一个红圆点出现在该汇编代码的右边。

与逻辑条件有关的断点

逻辑条件触发断点的设置

  • 选中Breakpoint对话框中的DATA标签
  • DATA页面中的Expression编辑框中写出你的逻辑表达式,如(6==sum);
    VC、VS2005调试技巧

监视表达式发生变化断点

  • 选中Breakpoint对话框中的DATA标签;
  • 在Expression编辑框中写出你需要监视的表达式;

监视数组发生变化的断点

  • 选中Breakpoint对话框中的DATA标签;
  • 在Expression编辑框中写出你需要监视数组名;
  • 在Number of Elements 编辑框输入你需要监视数组元素的个数;
    VC、VS2005调试技巧

监视由指针指向的数组发生变化的断点

  • 选中Breakpoint对话框中的DATA标签;
  • 在Expression编辑框中输入形如pointname,其中pointname为指针变量名;
  • 在Number of Elements 编辑框输入你需要监视数组元素的个数;

监视外部变量发生变化的断点

  • 选中Breakpoint对话框中的DATA标签;
  • 在Expression编辑框中输入变量名;
  • 点击在Expression编辑框的右边的下拉键头;
  • 选取Advanced选项,这时Advanced Breakpoint 对话框出现;
  • 在context框中输入对应的函数名和(如果需要的话)文件名;
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: C++ 技巧 调试
最后更新:2014年6月4日

sollyu

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2021 sollyu.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备15007531号