我做的一个程序,以前都没有任何问题,但现在出了一个奇怪的问题。
有一个原有的窗体中增加新的代码,代码编译无问题,但运行时出现一些地址错误,并且在新加入的代码中设置断点,断点无效,是绿色的好像代码没有编译似的。在一个Edit控件的onClick事件中加入showmessage('ok');的代码并设置断点,运行程序单击edit控件,系统显示对话框"ok",点击确定后,代码停到这行上。正常情况应该是先停再运行时显示对话框。现在正好反了过来,谁知道怎么解决请不吝赐教。还有就是我将代码拷贝到另一台机器上,现象依旧。
还有就是“Project\Options\Compiler\Debug Information”选项已经被被选中了,问题没有解决。
把工程下的 *.cfg *.dsk *.dof 删除再打开工程问题依然存在。
当前还有一个奇怪的现象就是这个窗体中大多数IF语句上设置断点,全都是绿色的,前边打叉,程序运行时在断点处不停,直接进入到IF语句中,而且跳过了IF语句中的第一行代码,实际上程序运行的结果看IF语句中的代码根本没有运行。
总之就像一个神经错乱的病人一样,我看我也快神经错乱了。
请高人搭救我一把!!!不胜感激!!!

解决方案 »

  1.   

    我今天才郁闷,刚装了雨林木风的winxp sp3,结果装delphi2007 sp3老是删掉组策略,郁闷!
      

  2.   

    确定你现在打开的这个文件是唯一的。将目录下的所有dcu和所有带~扩展名的文件全部删除。
    关闭delphi重新启动,重新编译,看能不能解决问题,如果还是不行,那就很麻烦了,那个delphi生病了。
    我遇过类似的问题,最后只能重新建立一个工程,然后将这些代码一块一块拷贝过去,还不能将原来的那些文件拷贝过去,否则又完蛋拉。
      

  3.   

    同楼上建议,重新build看看
      

  4.   

    Delphi出现这情况还没见过,VC下倒是见过,貌似调试的时候是根据模块中内置的什么信息可以获取行号的,然后对应到源代码中间去,上次VC调试时是输出路径不正确,而且装载的那个实际DLL刚好又有调试信息,调试时就断点乱跳(代码与模块对应错了)
      

  5.   

    Delphi的问题..我以前有遇到过,怎么都搞不定. Delphi的编译器很多毛病.
      

  6.   

    断点失效有可能是Delphi IDE读取了不同路径中的同一文件。建议关闭所有工程后,重新打开工程,然后设置断点进行调试。
      

  7.   

    断点失效可能是你最终没用到这个变量吧!DELPHI好像就自动优化掉了
      

  8.   

    一定不是被优化掉的,因为这个代码在程序运行是起作用了,输入不同的条件执行了不同的代码。而且好像断点与代码有点错位,就像上面提到的Showmessage('ok')的代码是这样的:
    procedure Tform_tydlr.bsSkinEdit2Click(Sender: TObject);
    begin
      showmessage('ok');
    end;
    断点设置在showmessage('ok');行时,先看到“OK"对话框,然后程序才停
    而断点设置在 begin时,程序先停,再运行看到“OK"对话框。
    可是正常情况下begin这一行设置断点应该是无效的呀。
      

  9.   

    看看CPU窗口的汇编吧,看看进入Tform_tydlr.bsSkinEdit2Click到底发生了什么,有必要的话,结合Memory还有Watch……
      

  10.   

    最好把Tform_tydlr.bsSkinEdit2Click的在CPU的代码贴出来看看,还有你的pascal源代码
      

  11.   

    不能把Delphi的代码粘到 Windows的 记事本中然后再粘回来用!!!!把程序重新打一边,就OK了!!!!