Article ID: 168379
Article Last Modified on 9/23/2003
APPLIES TO
- The Integrated Debugger, when used with:
- Microsoft Visual C++ 5.0 Enterprise Edition
- Microsoft Visual C++ 6.0 Enterprise Edition
- Microsoft Visual C++ 5.0 Professional Edition
- Microsoft Visual C++ 6.0 Professional Edition
- Microsoft Visual C++ 6.0 Standard Edition
- Microsoft Visual C++ .NET 2002 Standard Edition
- Microsoft Visual C++ .NET 2003 Standard Edition
This article was previously published under Q168379
SYMPTOMS
The debugger does not Step-Over to code in __finally block from a __try block.
CAUSE
The __finally code is executed via a "call" instead of a "jmp instruction.
RESOLUTION
The workaround is to do a Step-Into (F11 key) instead of Step-Over (F10 key) in the debugger.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
Compile the following code with debug information.
#include <iostream.h> void main () { int counter=0; __try { counter++;//SET A BREAKPOINT HERE cout << "In try block" << endl; } __finally { counter++; cout << "In finally block" << endl; } cout << "Exit, counter=" << counter << endl; }
Set a breakpoint on the line shown above. Start the debugger with Debug Go or by pressing the F5 key. Step-Over (or, press F10) from that point onward. The debugger exits the program without going to the __finally block.
Keywords: kbbug KB168379