Making a low level Linux debugger, part 3: our first program
I now feel like debuggers are a design smell. I&#x27;ve used them less and less (to the point of not having to use them at all) as I&#x27;ve coded more test-first and designed things to be smaller (lower logic depth, etc.) I mean, all a debugger is, really, is a window into dynamic state, so if you control the, let&#x27;s just call it what it is, the &quot;rampant dispersion of state&quot; at all times, you end up not needing a debugger (and producing fewer bugs) IMHO.<p>Now I&#x27;m sure that kernel-level stuff wasn&#x27;t designed like this, and probably won&#x27;t be for some time (I&#x27;m hoping Rust changes that story, but not a low-level coder), so debuggers may still be necessary- just making a point that it seems possible to design in such a way that the need for one is drastically reduced, if not eliminated. Or at least, that&#x27;s how it seems to me in high-level-language-land (things may differ at the assembly and C levels).<p>EDIT: I apologize for OT, probably not the ideal place to start a &quot;are debuggers really necessary if you design code correctly?&quot; discussion, after all this is part 3 of a series, my bad