Re:The Debugging Mindset
by AstralStorm on Monday April 03, 2017 @07:57AM
(#14022099)
And all bets are off when considering realtime behaviour such as concurrency or fairness.
Neither debugger nor logs will help (they change behaviour and reproducibility is low) so you have to get to the basics and make a formal review. As in describe the expected algorithm, its preconditions, postconditions and then verify if this contract is met.
Yep, know it well, there's a whole class of applications that don't play well with a debugger. But, most developers aren't working on those applications...
Re:The Debugging Mindset
by AstralStorm on Monday April 03, 2017 @04:28PM
(#14026824)
Most developers do not worl on user facing concurrent code? Such as user interfaces?
No, not normally. It's fairly rare, and when it does crop up, it is typically handled with pre-baked solutions that are used to spawn a worker thread/process for the purposes of off-loading work from the main UI thread, with minimal communication with the main UI thread via posted messages.
I'll just add this: once you get to Step 3, conditional breakpoints are your best friend. Sometimes they're too time-consuming and you have to resort to manually "instrumenting" the code to get the conditional breakpoint, but the principle is the same.