This documentation is archived and is not being maintained.

How to: Debug Mixed-Mode Applications

This topic applies to:


Visual Basic



Web Developer


Topic appliesTopic appliesTopic appliesTopic applies


Topic appliesTopic appliesTopic appliesTopic applies

Pro and Team

Topic appliesTopic appliesTopic appliesTopic applies

Table legend:

Topic applies


Topic does not apply

Does not apply

Topic applies but command hidden by default

Command or commands hidden by default

A mixed-mode application is any application that combines native code (C++) with managed code (such as Visual Basic, Visual C#, or C++ that runs on the common language runtime). Debugging mixed-mode applications is largely transparent in Visual Studio; it is not too different from debugging a single-mode application. There are a few special considerations, however.


Visual Studio does not support mixed-mode debugging on 64-bit platforms, Windows 95, Windows 98, or Windows Millennium Edition.

In a mixed-mode application, the evaluation of properties by the debugger is an expensive operation. As a result, debugging operations such as stepping might appear slow. For more information, see Stepping. If you experience poor performance in mixed-mode debugging, you might want to turn off property evaluation in the debugger windows.


The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. To change your settings, choose Import and Export Settings on the Tools menu. For more information, see Visual Studio Settings.

To turn off property evaluation

  1. From the Tools menu, choose Options.

  2. In the Options dialog box, open the Debugging folder and select the General category.

  3. Clear the Enable property evaluation and other implicit function calls check box.

Because native call stacks and managed call stacks differ, the debugger cannot always provide the complete call stack for mixed code. When native code calls managed code, you may notice some discrepancies. For details, see Mixed Code and Missing Information in the Call Stack Window.