BUG: Debugger Cannot Step Out of Recursive Function (200597)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0, when used with:
    • the hardware: DEC Alpha
  • Microsoft Visual C++, 32-bit Professional Edition 5.0, when used with:
    • the hardware: DEC Alpha

This article was previously published under Q200597

SYMPTOMS

An attempt to step out of a recursive function that has called itself may result in no action by the Visual C++ debugger.

CAUSE

This problem is caused by the debugger's inability to differentiate between the current address context and the return address context if the addresses are the same. As a result, the debugger interprets the current address as the step-out breakpoint and breaks immediately without executing any instructions.

RESOLUTION

To work around this problem, for each step-out, just perform a step-over to make the current address different than the return address, then perform a step-out.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:11/18/2003
Keywords:kbBug kbDebug kbide kbpending KB200597