单步跟踪时,本来光标应该指向当前正要运行的语句,但我的vc不知道犯什么毛病,产生了错位,比如本来运行的语句在100行,光标的位置却在不相干的86行,按一下单步前进,代码到了101行,光标也前进到87行,依次类推,不是一般的闷那!
而且不是所有文件都如此,只是个别的文件,偏偏这个文件的代码很是需要单步调试!
有谁遇到过类似的情况,是代码结构问题还是调试环境问题?除了重装系统,重装vc,有什么别的办法吗?

解决方案 »

  1.   

    你改了源文件没编译,直接调试了,就会出现这种情况。一般是设置中输出的EXE与调试的EXE不在同一目录引起,DLL最容易引起这种问题。
      

  2.   

    go to disassembly
    看看对应的汇编代码,如果发现有一部分代码被编译器忽略,那么就是编译器出现了编址错误。我碰到过的这种现象,一般是下面几个原因引起的,一是结构定义时未单字节对齐;
    二是有部门级和开发组级共有目录,在公有目录和自己的工程中有结构重定义,但结构具体形式不一样;
    三是用到stl在release版时出现变量内存数据乱序(有关stl在vc6中的支持问题,除了自己,也见到有同事碰到过)