OS/2 saved me an enormous amount of debugging time.
I always laugh when people complain about null pointer seg faults. Those are a feature, not a bug. Finding bugs in your code immediately, rather than a few miles further down the road, is a great attribute.
Writing through a null pointer in real mode DOS meant overwriting the interrupt vector table. Probably the worst CPU architectural mistake of all time is locating that table at address 0. If you were lucky, DOS would just freeze up, and you could reboot it. If you were unlucky, it would scramble your hard disk, and you'd have to re-install the operating system and all your files.
The ROMs (i.e. boot address) should have been located at address 0, and the interrupt table at FFFFF.