De Bugger Stops Working

Recently I went to debug my current project after a breakpoint was encountered, and I could no longer step into or over subsequent lines of code.  I thought initially it was some sort of conflict with the Tortoise SVN client and the debugger when I had the ‘Debug Spawned Processes’ debugger option enabled.  The EMB newsgroup seemed to indicate there was a known issue, and it did seem to fix the issue when I first encountered it.

About a week later the same thing happened.  I uninstalled Tortoise after seeing if upgrading to the latest version would resolve it.  When even uninstalling didn’t work, I noticed that my Watch window was reporting an access violation.  I removed all watches, and I could step into the code once again.  It appears that under some circumstances it’s possible to create a watch that when evaluated, can effectively disable the debugger.

If I ever reproduce this situation again I will pay more attention to the expression so I can attempt to re-create a test case (even though I am using Delphi 7).

2 Responses to “De Bugger Stops Working”

  1. Jolyon Smith Says:

    My guess is that your watch expression was invoking some function call that never returned or blew the stack. I can’t think of much else that would cause such internal damage to the debugger that it couldn’t recover. In fact, I would have thought that even a stack fault should just slow it down, but still end up reporting a stack overflow exception to the watch window, so maybe a non-returning function is the prime candidate.

  2. Jolyon Smith Says:

    Observation - out of curiosity I just deliberately created the non-returning method call scenario and it doesn’t just take down the debugger but the entire IDE! (Delphi 2010)

Leave a Reply