??? 01/18/08 14:20 Read: times |
#149692 - comment or amplification Responding to: ???'s previous message |
This is why I, and many others, think that debuggers are, for the most part, counter-productive. Software engineering is applied math, and the best debugging consists of examining the code to determine if it is correct, and not in doing a postmortem after a failure. Debuggers do have their uses, but they're rare.
While I disagree with "debuggers are, for the most part, counter-productive", I totally agree with "not in doing a postmortem after a failure" as the primary means of achievein the goal. If no time/care/concern is applied to writing (and verifying while writing) the code for the reason "I'll catch it in the debugger" the debugger may save you, but the end result will be late and most likely, faulty. However, when code is written to work, there is no better tool than an ICE to catch the few mistakes that invariably will exist in even the most carefully written code. At that state, "sitting down and staring at the source" is not an efficient means of debugging. I had, a few months ago, an occasion where the ICE was worth 100 times its cost. I was writing code to use a chip where the information about the chip was incomplete and partially incorrect. Had I not had an ICE I might not be done by now. Now, let me state one opinion: debugging by means of inserting printf statements is the crappiest method anyone ever has devised. It will a) take many 'writes' to finally get it in the place where the result has valuable information and b) - even worse - it will throw the timing of your program totally off. Erik |