delphi单步跟踪不能同步,类似错位的感觉。在有些模块里跟踪是正常的,但有一些就会出现这种问题,懊恼,求助!运行程序没有任何问题。

解决方案 »

  1.   

    我把断点也去掉了
    是不是我的delphi出什么问题了?
      

  2.   

    一般情况是你跟踪的源码不是最新的,即你跟踪的代码其实不是你运行程序的代码,把dcu文件全删掉重新编译一下试试
      

  3.   

    我删掉了*.dcu,但问题仍然存在~~~~~
    SOS
      

  4.   

    我也想知道。以前看到一个帖子说是Delphi IDE的bug。
      

  5.   

     应该是是你在debug模式的时候修改了代码,又没有重新编译导致的。
    重新再编译一下就可以啦!
      

  6.   

    不行就删除DCU 然后 重启DELPHI 打开原来工程,然后CTRL+F9
      

  7.   

    把exe文件删除,重新启动delphi再次打开工程,先别调试,重新build一下,再调试!
      

  8.   

    检查三个位置:
    1. 项目选项(Search & Project Source)
    2. Delphi环境选项(Library)
    3. Unit Output
    搜索这些位置(不要包含扩展名),肯定能发现同名的文件名。另外,你也可以直接在Enviroment里面把当前单元的正确位置加载Library的第一条。
    再Build。
    一定可以的!GL
      

  9.   

    楼上所有人说的都不对!!!老大你用windows记事本Copy/Paste过代码吧哇哈哈哈,把那部分删除了,老老实实再敲一边
      

  10.   

    可能是option里面的debug source path和你实际打开的工程不一致
      

  11.   

    也有些情况是代码被优化掉了,比如function Add5(X: Integer): Integer;
    begin
      Result := X;     // 1
      Inc(Result, 5);
    end;这种情况语句1就会被优化掉,因为传入的参数 x 使用 eax 寄存器,而 Result 也使用 eax 寄存器,所以编译的时候这句就成了多余的。这种情况下ide中语句1之前不会出现蓝色的可设断点的蓝点儿(好比有些短的、没几个局部变量的函数begin/end语句没法设断点,因为不需要保存/恢复栈现场)。还有些情况比如某些for循环里可能产生的(delphi的for语法使编译器能够做一些特别的优化),有时候生成的代码会和原来的实现方法有差别,单步跟代码的时候可能会跑的和预想的不太一样,跟出来for循环变量的值也可能会与预期的不太一样。这种情况并不多见,如果跟反汇编的话就知道是怎么回事了。
      

  12.   

    这种情况我也碰到过,
    装第三方控件后出现的,
    我猜想是bpl包的问题,
    我没有找到好的解决方法最后重装delphi了
      

  13.   

    错位?是说的执行和代码对不上么?
    如果是这样,那应该是执行代码和你看到的代码是不同的.原因有很多.
    先自己重新编译一次.
    不行的话,再清除DCU文件.
    还不行的话,仔细查看你打开调试的文件的路径,是否正确.
    你这种情况,大部分是路径引起.
    (实在不行的话,如果你的test.pas调试不正确,搜索一下你计算机中所有的test.pas和test.dcu,除了工程用到的,其其它的都删除,嘿嘿)
      

  14.   

    我也遇见这种问题,不过都是以重启Delphi解决的不知道什么原因?
      

  15.   

    碰到过这种问题,重启下delphi就行了