Bill, Mr. Guid acts on each line the debugger sends to it. The gets method would recieve one line at a time, which is just what I want, but this only seems to work in linux. For recv, I have to get a block of data not necessarily delimited by line. This means if the previous line takes a longer amount of time to process than the debugger can send data (say listing global variables), the next recv call gets a chunk of data rather than line by line. I therefore lose data to process. (You can observe this by changing every 'gets' method to 'recv' and every 'puts' method to 'send' in both mr_guid.rb and gdebug.rb and trying to get a list of global variables)