Microsoft KB Archive/168379

From BetaArchive Wiki

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