[Oberon] PMDs (was: selecting all text in a viewer)

Chris Burrows chris at cfbsoftware.com
Sun Sep 5 02:49:16 MEST 2010

> -----Original Message-----
> From: oberon-bounces at lists.inf.ethz.ch 
> [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of Chris Glur
> Sent: Tuesday, 5 January 2010 1:00 AM
> To: oberon at lists.inf.ethz.ch>
> Subject: [Oberon] Re: selecting all text in a viewer

> Re. ETHO 'trap facility': this is astounding.

I agree it is extremely useful but it is nothing new in the Wirth world.
CDC6000 Pascal had this feature way back in the mid 1970's. Then it was

> I doubt that the M$ & C-boys have any thing similar.

They do but they are typically called 'post-mortem debuggers' (PMDs) rather
than 'trap viewers'. Oberon microsystems have combined the concept very well
with the use of 'folded text' in the trap viewer used in Windows-based
Blackbox Component Builder. 

However, most Windows developers would scoff at the thought of using a
system that *only* had a post-mortem debugging facility. They are accustomed
to using Visual Studio for VB/C/C++/C# or RAD Studio for Delphi/C++ with
their *interactive* source level debugging features. They give you all of
that information and much more at *any* pre-determined occasion during a
program execution based on breakpoints, watchpoints etc. - not just when a
program crashes or fails an assertion. 

I use both PMDs and interactive debuggers. 

Interactive debuggers are seductive but unproductive. Their focus is very
narrow. I find they lead to trial and error hacking instead of planned,
disciplined, programming. The worst sin is to jump into the debugger to
diagnose a problem before narrowing down the scope. I usually liken misuse
of debuggers to:

a) trying to search for a needle in a haystack without first identifying
which haystack you should be looking in.

b) using a microscope to look for your car when you can't remember where you
parked it

In the long run I find it quicker to program defensively and make judicial
use of assertions to trigger a PMD when unanticipated situations occur.


Chris Burrows
CFB Software



More information about the Oberon mailing list