[Oberon] PMDs (was: selecting all text in a viewer)
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
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.
More information about the Oberon