Microsoft KB Archive/168379

= BUG: Debugger Does Not Step Over to __finally Code Block =

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</li></ul>

 Microsoft Visual C++ 6.0 Standard Edition</li></ul>

 Microsoft Visual C++ .NET 2002 Standard Edition</li></ul>

 Microsoft Visual C++ .NET 2003 Standard Edition</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q168379

<div class="symptoms_section">

SYMPTOMS
The debugger does not Step-Over to code in __finally block from a __try block.

<div class="cause_section">

CAUSE
The __finally code is executed via a "call" instead of a "jmp instruction.

<div class="resolution_section">

RESOLUTION
The workaround is to do a Step-Into (F11 key) instead of Step-Over (F10 key) in the debugger.

<div class="status_section">

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

<div class="moreinformation_section">

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

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.