[Oberon] Systematically debugging

Stefan Salewski Salewski at physnet.uni-hamburg.de
Fri Feb 17 15:06:18 CET 2006


i wonder how to systematically debug Bluebottle software if 
strange errors occur.

Current probleme: I have currently two computers on my desktop, 
the old one running Bluebottle, the new one running Linux. I 
tried some communication between them, starting FTP-Server or 
VNC-Server on the Bluebottle box. There exist a strange error, 
communication breaks after transmission of a small multiple of 
524 Bytes from Bluebottle server to Linux box. Transmission in 
the opposite direction seems to work. Transmission from a far 
away linux box at university of Hamburg to my Bluebottle box at 
home work most time (not always), transmission from my Linux box 
to a Bluebottle box at ETH (VNC-Server) seams to work too.

If transfer from my Bluebottle box breaks, a serious errors must 
have been occured. Bluebottle box is periodically death for a 
few seconds (cant move move pointer), ping to bluebottle box 
doesnt work anymore, and System.Reboot works only with delay, 
after calling it multiple times or is not working at all.

So I think this is not just a problem of TCP-Pakets with wrong 
headers, but something serious going on on bluebottle box.

Well, I dont really need connectivity between the two boxes, so 
one method to solve the problen may be just to wait until ETH 
can reproduce it and maybe fix it.

In the last days I spent some hours investigating the bluebottle 
code, especially module AosTCP.Mod. But the bug may be hidden
in other modules, 3Com90x.Mod, AosNet, ...

Finding such a bug in an multitasking or active object system is 
not easy.  The advantage is that i can trigger this error each 
time I start a ftp-server at my Bluebottle box, start ftp-client 
on my linux box, connect and execute command get with a file 
larger than 500 byte or do command ls displaying multiple files.
(Transmission breaks after transfer of 524 or 1048 Bytes, this
is a blocksize in module AosTCP.Mod so my first gues was that the 
error is in this module. But this module contains much low-level 
code, I cant easily see an error. And maybe the 
data-transmission of module AosTCP.Mod just triggers the error, 
but is not containing the error itself.)

Has somebody a systematic debugging strategy for non trivial 
errors like this one?

Best regards

Stefan Salewski

More information about the Oberon mailing list