Debugging in an Asynchronous World
Mon Feb 9 03:05:46 CET 2004
Ulf Wiger <ulf.wiger@REDACTED> wrote:
> On Sun, 08 Feb 2004 23:44:41 +0100, Marc van Woerkom
> <marc.vanwoerkom@REDACTED> wrote:
> >I would lvoe to hear an Erlang point of view comment on this article:
> > Debugging in an Asynchronous World
> > Michael Donat, Silicon Chalk
> > Hard-to-track bugs can emerge when you can't guarantee sequential
> > execution. The right tools and the right techniques can help.
> > http://acmqueue.com/modules.php?name=Content&pa=showpage&pid=63
> Well, what they describe is your typical pthreads hell or nightmares
> that come from trying to solve concurrency problems with inadequate
> tools, like e.g. UML tools.
That entire article is an article on "how not to write and debug a
multithreaded application". I've "solved" many a bug in pthread systems
in the past simply by introducing extremely lightweight tracing systems
(exactly as they describe) to try and understand where the failures are
occuring, and why. The threads were so interrelated that just shifting
a few instructions in the critical path would cause the threads to work
nicely together, or fall apart entirely. I'm also currently fighting
something like this today in Java as well. :-(
I'm really starting to doubt our industry's capabilities lately...
Half of being smart is knowing what you're dumb at.
More information about the erlang-questions