[Oberon] Systematically debugging
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?
More information about the Oberon