+ -
当前位置:首页 → 问答吧 → 非正常错误,在loadResString处出错

非正常错误,在loadResString处出错

时间:2011-08-22

来源:互联网

我把程序的错误分为正常错误与非正常错误;所谓正常错误是指自己写的代码的逻辑错误,在delphi调试中可以明显的找到自己错处,而非正常错误就是指在程序代码中找不到的错误。比如说,编译运行程序时,有时出错时,会发现程序运行到了以前写的单元代码处,而在本程序中即根本没有调用该单元?这个问题怎么解决?
比如说我现在遇到的问题,在用ClientSocket/ServerSocket写得程序中,总是会不定地方的loadResString处出现非法访问地址错误,而我的代码中根本没有调用loadResString函数,程序运行一出错,在view cpu中却大多定位到loadResString处,这是什么原因?
比如说,在代码中, temSen.sLocalIP:=Socket.RemoteAddress; 这句出错,我在view cpu 跟踪了很长很长的一段代码,最后也是定位到 loadResString出错,我却找不到原因?我确定Socket,temSen都是没问题的;怎么解决?我现在的运行的程序,一运行出错,都会定位到loadResString,为什么?

比如说,运行程序时,当运行一个函数后,比如
procedure TfrmXJTran.FormCreate(Sender: TObject);
var
  fName,sLine:string;
  MyIni: TIniFile;
  i,j:integer;
  bResult:boolean;
  IPPara: PIPPara_Record;
begin

  fName:=ExtractFilePath(ParamStr(0))+'XJTran.ini';
  MyIni := TIniFile.Create(fName);
  m_sport:=MyIni.ReadString('代理服务器', '端口号', '80');
  bResult:=True;
  i:=0;

  IPParaList.PNextIPPara:=nil;
  IPPara:=@IPParaList;
  while bResult do //读取IP对应表
  begin

  sLine:='IP对应表'+inttostr(i+1);
  IPPara.sLocalIP:=trim(MyIni.ReadString(trim(sLine), '本地IP', ''));
  IPPara.sRemoteIP:=trim(MyIni.ReadString(trim(sLine), '远程IP', ''));
  IPPara.sRemoteport:=trim(MyIni.ReadString(trim(sLine), '远程端口', ''));
  if (IPPara.sLocalIP='') or (IPPara.sRemoteIP='') or (IPPara.sRemoteport='') then
  begin
  bResult:=False;
  Break;
  end;

  inc(i);
  if i>0 then //增加一个记录
  begin
  GetMem(IPPara.PNextIPPara,Sizeof(IPPara_Record));
  IPPara:=IPPara.PNextIPPara;
  IPPara.PNextIPPara:=nil;
  end;

  end;
  MyIni.Free;

  m_Session.CSocket:=nil;
  m_Session.Request_Data:=nil;
  m_Session.CurSocket:=nil;
  Service_Enabled:=false;

  ServerSocket.Port:=strtoint(m_sport);
  try
  ServerSocket.Active:=true;
  except
  Showmessage('启动服务器失败!');
  application.Terminate;
  end;
  m_Isession:=0;//会话数

end; 
运行完程序后,出会出现非法访问地址错误,当我把程序代码删除的只剩m_Isession:=0;//会话数这句,运行完程序后仍然会出错,把程序其它代码,(本函数外的其它代码),也基本删除光,确保没有出现自己的原因使程序出错,运行后,程序还是出错?这是什么原因?

写程序,最怕就是遇到这种问题。都不知怎么下手,各路高手,可不可以共享一下,平时遇到这类问题都是如何解决的?可不可把遇到的各类非正常错误列举出来,并提供解决之道,大家共同学习,共同进步?列出来的都有分,不够再加!

作者: mhhaifeng   发布时间: 2011-08-22

怎么没人回应? 都没遇到过?

作者: mhhaifeng   发布时间: 2011-08-22

热门下载

更多