Hi Roland,
I think you can systematise the location of bugs. But the rest of the bug-fixing process will often involve running a series of code modifications to establish the behaviour of the code, followed by a detailed step-through to understand the erratic behaviour, and then a consideration of the best solution to the problem. These latter stages, which consume the most time, require a range of skills which I doubt could be automated.
Anyway, the example you gave was an interesting one, and is restored to the OOP examples. It took about 30 mins to characterize the bug symptoms, another hour to identify the behaviour at the assembler level. Another hour to trace the origin of the bug. 1 minute for a quick fix: A mere d=0. Then another hour or two to go for a deeper, and more robust fix, saving some lines of code in the process.