吐血求救:程序执行非法操作(300分,不够再加)/BY 云儿飞飞(300分)

  • 主题发起人 主题发起人 YunEr
  • 开始时间 开始时间
Y

YunEr

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一程序,主要是作收发消息用,长时间不作任何操作,运行会偶尔执行非法操作
随机重现,请众虾指点排除错误的方法!不甚感激,嫌分少可以再加,
出错如下:
TEXADAT.EXE 在 0000:00000017 的模块
<未知> 中执行无效指令。
Registers:
EAX=01507bf0 CS=0167 EIP=00000017 EFLGS=00010207
EBX=01507b80 SS=016f ESP=006b00d4 EBP=006b00f8
ECX=006b017c DS=016f ESI=8173b478 FS=1ab7
EDX=bff768d5 ES=016f EDI=006b0270 GS=0000
Bytes at CS:EIP:
f0 78 80 00 f0 d4 e7 00 f0 00 00 00 d0 28 00 eb
Stack dump:
006b00d8 bff768c9 006b0270 01507b80 006b01a4 006b017c
006b0560 bff768d5 01507b80 006b018c bff88266 006b0270
01507b80 006b01a4 006b017c 0000000c
 
看这个就能排错?佩服佩服
 
非法访问?
当前eip是17
这里没有指令
 
要把源代码贴出来才有可能知道是什么问题啊!!!
 
大哥,贴一点代码出来好不好?或者告诉我们你的程序主要干了什么事情,使用了什么算法。
运行一段时间以后必发生错误吗?——在别的Win2k机器上试一试?
试一试我的专门用于在运行中发现错误的代码:
procedure AppendRunLog(const str:String);
begin
Assign(RunLog,'RunLog.dat');
if FileExists('RunLog.dat') then
Reset(RunLog)
else
Rewrite(RunLog);
Append(RunLog);
Writeln(RunLog,str+' 时间:'+TimeToStr(Now));
Close(RunLog);
end;

将其用到你的程序中的一些主要过程中去——在过程的开始和结束处加上,如:
AppendRunLog('SendUserMessage begin
');
...//过程主体
AppendRunLog('SendUserMessage End');
如有必要,还可以将该过程用到的参数也显示出来。
如何根据RunLog中的内容寻找错误就不用说了吧。
 
程序总共有4万行代码,如何能贴得出来呀。
如果一台WIN98开机长达1个月,开启这个程序会出现好几次这个问题,
每次都是这个地方。
也就是说没有任何操作时程序会出错,没有任何操作时
程序只有两个定时器,两个SOCKET来监控连接,估计只有它们在运行时
出的错,这一部分代也有好长好长啊。
但是从出错地址来看,并非应用程序的地址,所以我认为不是程序本身
的代码问题,所以就请教富翁们了
 
有没有换来机器用用。
再看看有没有病毒 。
 
是不是用了socket空间,serversocket有这个问题,用winsocket api代替
 
内存泄露?
 
TO YunEr and 热血:能讲一下上面的出错信息是怎么看的吗?
 
你可以用bound checker for delphi来查找是哪里出错了
to pursuer:程序非法错误都会弹出一个对话框
 
告诉你个好办法,把你的所有win98换成win95,可以减少起码90%的未知错误,实在不行就
换成winnt4.0.
 
有好多台机器都出现这个问题,每次都是这个地方,OS为98第二版本 NT下则没有
正如YUEDAXIA所言,用了SERVERSOCKET,请说得详细一点,好吗?不甚感激。
热血:已经用BDC检查过了,基本上没有问题。
此问题很紧急,请教各富翁关于排除这种执行非法操作的办法……
嫌分少(我的分还是比较多的),可以另开主题送分。

 
用了什么控件了吗?
 
如果只是考虑没有做任何操作时,闲置在哪儿时
能用到的控件是两个Timer,两个SOCKET,一个是
服务器的,一个是客户端的。
我怀疑就是这里有毛病,但又不知道哪儿有问题
 
基本上,我也有此類問題,散佈幾個自己寫的小程式,有時使用者會詢問
發生了 『Except...on FFFFFFFF .....』 是什麼原因,此時會感到
很困擾,因為不知錯誤在何處,而使用者又很熱心地記下了,錯誤訊息,
....還是得靠詢問使用者做了啥動作之後才發生錯誤來排錯。 :(
關注中....
 
估计是不治之症了,
再踢一脚
 
再等几天就发分了事,算了,
唉,一声叹息……
 
后退
顶部