6 comments

[ 3.8 ms ] story [ 11.9 ms ] thread
I feel like it's good to note since I missed it. This post is from Feb 13, 2023. He has up to 8 posts on this at this point which don't appear to be linked to from this post. I think linking to all of them would be a bit much, but they're all currently listed on his main page [1].

[1] https://www.timdbg.com/

A favorite developing a debugger story was from a friend of mine.

They were working on a debugger for OS/2, which was quite notable at the time for being multitasking.

And at one point they got to enough of a base feature set that they could use the debugger on itself. Debugging the debugger.

While debugging the debugger, they would inevitably encounter other bugs in the debugging debugger.

So, with OS/2, they had a bit of an epiphany when they were able to debug the debugger debugging the debugger.

And I used to use the Numega SoftIce debugger to debug the anti-copying protection of itself, back in the day.

(Allegedly. Shout out to +fravia, RIP.)

For linux, there's this excellent series of articles by Eli Bendersky:

https://eli.thegreenplace.net/2011/01/23/how-debuggers-work-...

https://eli.thegreenplace.net/2011/01/27/how-debuggers-work-...

https://eli.thegreenplace.net/2011/02/07/how-debuggers-work-...

(Unfortunately, the articles don't include links to their respective follow-ups, but I'm pretty sure it ends after part 3...)

Thanks for the nudge - I've added links to other posts in the series in each one (there are only 3 - you found them all!)