View Single Post
Old May 6th, 2008, 4:16 PM   #1
Xyhm
Programmer
 
Xyhm's Avatar
 
Join Date: Mar 2006
Posts: 60
Rep Power: 3 Xyhm is on a distinguished road
my program keeps crashing

I've developed a program that communicates with another program through anonymous pipes set up by the other program (not written by me).

The problem is that my program keeps crashing as soon as I add something more than just receiving the info. For example, if I add a simple "showMessage", it crashes, but works again if I remove it.

Here is the code:

procedure TArena.read_winboard; 
var text:string[50];
    ch:char;
begin
   while true do
   begin
      text:='';
      repeat
         read(input,ch);
         text:=text+ch;
      until ch=#10;

      //showMessage('this instruction makes the program crash');

      form1.memo1.Lines.Add(text);
 
   end;
end;

Obviously the showMessage-instruction is just an example. If I try to do any parsing of the incoming text (for example sending it to a parser-function of some sort), it crashes. But the code above, devoid of anything extra, doesn't crash, and I can tell by the ouput in the memo that everything is received as expected (and sending info the other way works as well; code not included). So the communication is working.

I hear that buffering can cause problem (even crashing?). Is the input used by that read function using a buffer? And is it that function a real systems call or a part of Delphi (internally doing the systems call)?

I'm really confused right now, and frustrated. I want to start implementing the protocol, but that's hard when not being able to parse the incoming text. Boo hoo.
Xyhm is offline   Reply With Quote