
If 16-bit Windows had a single input queue, how did you debug applications? - omnibrain
http://blogs.msdn.com/b/oldnewthing/archive/2014/11/26/10576044.aspx
======
snarfy
"How did you debug applications on it? "

With this bad boy:

[http://en.wikipedia.org/wiki/SoftICE](http://en.wikipedia.org/wiki/SoftICE)

~~~
zwieback
We used SoftICE extensively for driver debugging. I seem to remember a
pushbutton that slid into the ISA slot to trigger a NMI but now I'm not quite
sure anymore if it was SoftICE or Periscope that had that.

~~~
kosma
I used to trigger NMI by shorting the first two pins on an empty ISA slot with
a screwdriver (conveniently NMI and GND); stopped when the screwdriver slipped
once. Thankfully nothing died on that day, but the cascade of sparks convinced
me to install a proper button. ;)

------
markbnj
Sounds much more complicated than I remember it. I wrote a game called MVP
Backgammon in 1991 using Borland C++ (5.x) and their integrated debugger, and
do not recall any specific issues related to input queue deadlocks. You set up
your PeekMessage loop or whatever and hung a breakpoint on the switch
statement for the message type you needed to debug, and followed it down from
there. I assume the debugger was smart enough to run its own PeekMessage loop
while waiting for commands.

~~~
zwieback
Did you use OWL with BC++? That was so much better than MFC although the non-
standard C++ extension was a little unsavory.

I also remember the BC++ debugger being pretty nice although I preferred
CodeView.

~~~
DanielBMarkham
+1 for OWL. It was my first "real" C++ framework, and it was a great way to
start.

Borland had a nice tool suite but somehow just couldn't hang on to market
share.

~~~
mkramlich
I loved Borland's tools. But they got Microsofted just like dozens of other
apps, one by one over the years (word proc, spreadsheet, browser, etc.)

~~~
CWuestefeld
At the time, the battle over products like Quattro were with competitors like
Lotus, and not MS.

And Borland sure did their part. There were a number of great products they
acquired and then destroyed. The Brief editor is a near and dear example for
us developers, but they also went out of their way, it seems, to destroy dBase
and the whole Ashton Tate thing. And Sidekick was a really cool app that they
managed not to handle well, too.

~~~
yuhong
I think dBase screwed up before they were acquired by Borland.

------
breadbox
I loved having the debugger separated out onto its own screen, even if it was
a monochrome screen showing a bunch of tiled windows drawn with CP437 text-
mode characters. To this day I miss the perfection of that setup.

One of the first times I had to use a "modern" 32-bit debugger, one with its
own top-level window on the normal desktop, I was trying to find a bug
triggered by focus events. Every time I hit a breakpoint, the focus would
change to the debugger, dropping another focus event into the event queue,
which would naturally trigger the breakpoint again once I stopped single-
stepping. Having the debugger embedded in the system you're trying to debug
can be very, very annoying.

~~~
yuhong
You can still do remote debugging with WinDbg for example.

~~~
reddiric
And Visual Studio.

------
yuhong
[http://blogs.msdn.com/b/matt_pietrek/archive/2005/02/14/3724...](http://blogs.msdn.com/b/matt_pietrek/archive/2005/02/14/372424.aspx)

I am surprised Raymond did not mention it.

------
henderson101
I was just remembering my first job, where we still developed 16-bit based
clients. I was thinking "Wow, I don't remember it being so difficult to
debug...", then it dawned on me, everything we were doing was on machines
running Win NT 4!! 16bit Delphi 1 was an amazing achievement though, and the
32bit transition was fairly painless for us too.

