发现DELPHI的一个大BUG :((0分)

  • 主题发起人 主题发起人 苦虫
  • 开始时间 开始时间

苦虫

Unregistered / Unconfirmed
GUEST, unregistred user!
前些日子我写了个关于加密方面的程序
开发过程中都很正常
可一发布,问题就来了
我发现有些正常赋值语句不能正常工作
加了断点后发现,居然有些变量的值在无规律的自动变化(已经初始赋值的)
后来无意中,取消了compiler - optimization选项,上面的问题便消失了
以前听别人说过 代码优化 选项可能会使程序存在一些不可预知的错误
我还不信,看来这个东东确实有问题 :)
说出来,免得有更多的朋友在这个问题上枉费时间。

不知道我的理解是否正确,如有问题希望指正。kcsoft@163.com
 
没注意过这问题,compiler-optimization选项默认是不打开的吧?
 
证据不充分!我不能保证是谁的错!
 
感觉上极有可能是你的错,贴代码出来看看
 
我的D6也乱跳,我都追着跑了好几天了,到现在也没追上。
痛苦ing……
 
有这问题.以前也遇到过.
我就碰到过,大概是这个样子,在一个方法中嵌了一段这样的代码
for i:=0 to 5 do
begin
//if i>5 then exit;
x:=s;
......
end;
当时发生一个问题,数组越界,后来加上注释的那行就行了,但发现这样写会被人家笑话的,
只好改用while.搞得后来我都不敢轻易用for,一般用while了.但当时程序其他地方的for又
没有问题

 
To lynu:
for i:=0 to 5 do
begin
//if i>5 then exit;
x:=s;
......
end;
咱就事说事,你加不加注释是两个效果?我不相信。因为,在这个for里,I永远不可以大于5,
如果有错,就指正。
 
To SEVN:
Delphi乱跳?我愿意帮你“痛苦”一下!拿乱跳的精华部分看一下!
 
真的,太可怕了!!
我过去用过不少for 语句,如果有你说的错误,那我的程序可全完了~~~~~~~~~~~
告诉我你用的是d几????????
能否将出错的程序让我看一下??
拜托了!!!!!
 
不會吧!兄弟,
我也將compiler - optimization选中過,而且是對以前沒有選擇compiler - optimization所寫的程序進行調試,
但是都沒有你說的"FOR I:=0 TO 5" 的問題呀!*********
 
编译器优化也叫 bug ?我倒~~ [:D]

 
哥们谢了。

代码太长了,我有点不好意思。
 
To lynn,我估计还是你自己的问题,如果这种问题要是能出错,DFW这么多年也没有人提
这个BUG,delphi使用者这么多年也没有提过
 
我在做Delphi的几年中,遇到过很多这样的BUG,但是最后都证实是自己的问题,比如For循环的
问题,基本上肯定是你的程序其他地方有非法内存访问的问题,而可能正好修改了循环变量i的
内存数据,我曾经有过For循环根本不进去的情况(当然循环的终值大于起始值,而且是to而不
是downto),我不懂编译原理,不明白为什么你加上注释
后就没有事了,但是这样的问题基本上只有一个可能就是你的程序有问题.
 
我也来说说自己发现的Delphi的bug:写了一个生成随机数序列的procedure,只有10行左右
的代码。如果将该过程用for语句循环调用多次,每次的序列保存下来,会发现序列是完全
一样的!如果加上延迟语句则正常,不知是何原因,请高手指点。过程类似:
for i:= 1 to N do
begin
sleep(100);//不加延迟的话,生成的a序列都是一样的
a := MyRandomProc();
end;
 
你没有初始化,不是delphi的bug
 
to cslotus: 这是正常的,你用其它语言也一样。循环前用Randomize了吗?
 
我初始化了,a赋值均为空(a为字符串数组)
 
of course,当然用了randomize
 
后退
顶部