Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

11
  • 7
    I think this question could be improved by replacing the literal term "need for a debugger" by "need for debugging by tools like a debugger or logging" - I guess is that is what you actually meant. Commented Nov 1, 2019 at 17:26
  • 1
    Debuggers are the primary SE tool to catch code and logic errors, bad execution states during development of an embedded application. But afterwards, Extensive testing of embedded systems, especially under electrical, protocol/application, and environmental stress is used to root out firmware design faults under marginal conditions. In that context, The debugger is an essential diagnostic tool, but the testing is done (ideally) under, real world, live conditions. Commented Nov 2, 2019 at 4:19
  • 2
    You'll always need to test your program, and for any non-trivial program you'll find that at least some of your tests fail, at which point you'll want to find out why they failed and how to modify your code so that it does the right thing instead... at which point you'll need to debug. You don't necessarily need a debugger to debug, though -- in many situations, you can sufficiently analyze your code's behavior by adding temporary debug-prints/logging, and later reading the generated output, if you prefer to do it that way. Commented Nov 3, 2019 at 3:43
  • 3
    I would regard the behavior of the hardware to be something external to your software (although internal to the system), and handling an unexpected behavior to be a requirement that was not known in advance. I don't see any way that "choice of language and good practice" can possibly avoid debugging the system in such cases. I think the talks you're listening to are geared to a different audience. Commented Nov 3, 2019 at 13:42
  • 6
    You'll always find people bringing theory and how with good practices this and that, but having coded since the Atari 800: you need a debugger, will most likely always need one in your lifetime. The number of promises about design and methodology I heard in the last 30 years is ridiculous. Things don't work until they work and you need a debugger to speed up troubleshooting. In embedded systems or working with hardware in general, there are so many things that can't be debugged.. at least use the tools available to make work easier. And yes, good practices help, of course. Commented Nov 3, 2019 at 19:54