It was easier to develop on Firefox and then debug on IE. So a lot of websites worked on Firefox even if the management team didn't care (or even, in our case, when they told us not to support Firefox and we nodded and did it anyway)
A long time ago, the company I worked at had a website which worked only on IE, because it needed a specific ActiveX control for streaming video. But even though it would never work on Firefox, the developers still made as much of the site as possible work on Firefox, because whenever IE popped up an unhelpful error message ("Object expected" and others), reproducing the error on Firefox gave a useful error message.
The same happened to me at one particularly bad place I worked. Even more amusing is that we we're writing a web crawler based product and without inspecting the crawled sites in firebug our product wouldn't have existed at all.
That usually wasn't a problem, though, because you had to support IE due to its market share.
Windows had one of the first JavaScript debuggers, due to JScript.
Electron already existed as MSHTML packaged apps.
I was amazed that I could breakpoint and debug any running app. I miss SoftICE.
I read this a while back from someone who work for the company which owns SoftICE copyright : https://reverseengineering.stackexchange.com/questions/1445/...
For windows kernel debugging, there is windbg, kd, and assorted "emulation" methods like qemu's gdb stub. Similarly for linux/kgdb/etc... OTOH, Softice had a number of OS data structure aware commands in the late 1990's which are only really available in something like windbg. In theory you could write kgdb macro's to perform most of that functionality for linux/etc but it doesn't work out of the box.
Although in the end, the logical replacement for softIce, is a JTAG debugger of some form. A fair number of the ARM platforms work with DS5/Dstream which provides source level debugging with far more functionality (for example trace level timing information) than softice as an "ICE' ever did. I guess its the same for intel's ITP-XDP3/system studio products these days.
Again, it depends on what your trying to debug. AKA do you need the "ICE' (aka JTAG these days) functionality, or are you just looking for a powerful kernel or user-space debugger.
x64dbg on 64 bit windows
IDA Pro Debugger/GDB/LLDB on Linux/OSX/iOS/Android
GDB everywhere else
as StillBored said, windbg for Windows kernel debugging, but I've honestly only used it in exotic situations for .NET debugging
Ironically, the first software I cracked, well tried to, was an IRC client named Klient if I recall correctly. I bypassed the license check, but, this software included a functionality which, when it detected this, broadcasted to everyone (except me) that I was using a pirated version and that I was accepting the CTCP reboot command :-)
That's a demo of a Smalltalk environment with the programmer deliberately writing some code that crashes, going into the debugger, adding the method on the fly, and then having the original method call complete despite the method not yet having existed.
It isn't quite true that there is nothing new under the tech sun... but there's certainly less new than most people seem to think.
Firebug was a quantum leap in terms of HTTP/JS debugging.