delphi单步跟踪不能同步,类似错位的感觉。有朋友遇到过这种问题吗? delphi单步跟踪不能同步,类似错位的感觉。在有些模块里跟踪是正常的,但有一些就会出现这种问题,懊恼,求助!运行程序没有任何问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把断点也去掉了是不是我的delphi出什么问题了? 一般情况是你跟踪的源码不是最新的,即你跟踪的代码其实不是你运行程序的代码,把dcu文件全删掉重新编译一下试试 我删掉了*.dcu,但问题仍然存在~~~~~SOS 我也想知道。以前看到一个帖子说是Delphi IDE的bug。 应该是是你在debug模式的时候修改了代码,又没有重新编译导致的。重新再编译一下就可以啦! 不行就删除DCU 然后 重启DELPHI 打开原来工程,然后CTRL+F9 把exe文件删除,重新启动delphi再次打开工程,先别调试,重新build一下,再调试! 检查三个位置:1. 项目选项(Search & Project Source)2. Delphi环境选项(Library)3. Unit Output搜索这些位置(不要包含扩展名),肯定能发现同名的文件名。另外,你也可以直接在Enviroment里面把当前单元的正确位置加载Library的第一条。再Build。一定可以的!GL 楼上所有人说的都不对!!!老大你用windows记事本Copy/Paste过代码吧哇哈哈哈,把那部分删除了,老老实实再敲一边 可能是option里面的debug source path和你实际打开的工程不一致 也有些情况是代码被优化掉了,比如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循环变量的值也可能会与预期的不太一样。这种情况并不多见,如果跟反汇编的话就知道是怎么回事了。 这种情况我也碰到过,装第三方控件后出现的,我猜想是bpl包的问题,我没有找到好的解决方法最后重装delphi了 错位?是说的执行和代码对不上么?如果是这样,那应该是执行代码和你看到的代码是不同的.原因有很多.先自己重新编译一次.不行的话,再清除DCU文件.还不行的话,仔细查看你打开调试的文件的路径,是否正确.你这种情况,大部分是路径引起.(实在不行的话,如果你的test.pas调试不正确,搜索一下你计算机中所有的test.pas和test.dcu,除了工程用到的,其其它的都删除,嘿嘿) 我也遇见这种问题,不过都是以重启Delphi解决的不知道什么原因? 碰到过这种问题,重启下delphi就行了 AVAST 4.8中文家庭版疯了? ADO连接数据库保存 为啥可以select 但不能delete 语法肯定正确 调用readln读取文件怎么总停留在第一行? 求助,谁能帮我把这一小段VC的代码转成Delphi的?? 要让以下的代码在delphi下执行,应uses哪个dcu文件?谢谢指教!!! 一个简单的sql问题向高手请教 有关于CLIENTDATASET的排序。 怎么把widestring转换为string类型 如何打印旋转(如斜30度)字体呢? d2009下的string和shortstring是咋回事啊 检查数据格式的问题
是不是我的delphi出什么问题了?
SOS
重新再编译一下就可以啦!
1. 项目选项(Search & Project Source)
2. Delphi环境选项(Library)
3. Unit Output
搜索这些位置(不要包含扩展名),肯定能发现同名的文件名。另外,你也可以直接在Enviroment里面把当前单元的正确位置加载Library的第一条。
再Build。
一定可以的!GL
begin
Result := X; // 1
Inc(Result, 5);
end;这种情况语句1就会被优化掉,因为传入的参数 x 使用 eax 寄存器,而 Result 也使用 eax 寄存器,所以编译的时候这句就成了多余的。这种情况下ide中语句1之前不会出现蓝色的可设断点的蓝点儿(好比有些短的、没几个局部变量的函数begin/end语句没法设断点,因为不需要保存/恢复栈现场)。还有些情况比如某些for循环里可能产生的(delphi的for语法使编译器能够做一些特别的优化),有时候生成的代码会和原来的实现方法有差别,单步跟代码的时候可能会跑的和预想的不太一样,跟出来for循环变量的值也可能会与预期的不太一样。这种情况并不多见,如果跟反汇编的话就知道是怎么回事了。
装第三方控件后出现的,
我猜想是bpl包的问题,
我没有找到好的解决方法最后重装delphi了
如果是这样,那应该是执行代码和你看到的代码是不同的.原因有很多.
先自己重新编译一次.
不行的话,再清除DCU文件.
还不行的话,仔细查看你打开调试的文件的路径,是否正确.
你这种情况,大部分是路径引起.
(实在不行的话,如果你的test.pas调试不正确,搜索一下你计算机中所有的test.pas和test.dcu,除了工程用到的,其其它的都删除,嘿嘿)