3 ms·
I used debuggers all the time when I used to work on interactive GUI applications. I am sure I could still remember how, if I had a need, but in the meantime I'
by marssaxman 2y ago
I used debuggers all the time when I used to work on interactive GUI applications. I am sure I could still remember how, if I had a need, but in the meantime I've spent years working on hardware drivers, embedded firmware, distributed systems, ML pipelines, and other such environments where debuggers would be unhelpful or impossible. Mostly I debug by looking at logs, and by thinking over their implications; you get used to it.
Debugging is not really about the software, after all; it's a process of discovering the limits of your own understanding and identifying the flaws in your mental models. You make hypotheses and test them, and it doesn't matter so much what instruments you use to perform the tests, so long as you know how to think about the process systematically.
- PaulHoule 2y agoYou can get all kinds of tools for debugging embedded systems, like https://onlinedocs.microchip.com/oxy/GUID-DDB0017E-84E3-4E77-AAE9-7AC4290E5E8B-en-US-4/GUID-2E228ACE-9E8D-4350-BB97-82CCC430629A.html https://onlinedocs.microchip.com/oxy/GUID-DDB0017E-84E3-4E77... of course if your problem is timing sensitive you have a problem. (A project to make a display controller for AVR-8 PoV displays got bogged down because of that)
- beardyw 2y agoYes there are tools, but it would be interesting to find out how much they are used. How often is timing not a problem?
- marssaxman 2y agoI did use JTAG from time to time during that period of my career, but it was not as often useful as one might hope, usually as you say due to timing issues. I got really comfortable hooking up a serial port and streaming logs out at 9600 bps, or just clipping an LED or scope to a spare output and watching what it did. Then, sometimes it just didn't feel like it was worth the trouble of setting up the JTAG, when I knew I could turn it around in a minute with a simpler test.
- PaulHoule 2y agoThat was where I was heading with my display controller, except the 9600 bps wasn't good enough, the serial connection wasn't so reliable so I was trying to make a really simple protocol like HLDC [1] but life got in the way. If I ever get back to the project (putting an LED sign on the side of my car such that you might see some hearts and stars and stuff if you looked at it the right way) I might try testing the display controller in an emulator or put the strip on a pendulum or something so I can get a picture of it doing its thing. [1] https://en.wikipedia.org/wiki/High-Level_Data_Link_Control https://en.wikipedia.org/wiki/High-Level_Data_Link_Control