Knowledge Base

BUG: Debugger Cannot Step Out of Recursive Function

Article ID: 200597

Article Last Modified on 11/18/2003


APPLIES TO


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.

Keywords: kbbug kbide kbdebug kbpending KB200597