Debugger and Language Overview

A language service can provide features to support a debugger through the IVsLanguageDebugInfo interface. These features include validating breakpoint outside the debugger and supplying a list of expressions to be displayed in the Autos debugging window.

An expression evaluator is required by a debug engine to work with any specific language. An expression evaluator is responsible for parsing and evaluating expressions to produce values while debugging, from variable names to complex arithmetic expressions.

Compiler Output

Your compiler and its output determine what you need to do to implement debugging for your language. If your compiler:

  • Targets the Windows native operating system and writes a .pdb file, you can debug programs with the native code debug engine (DE), which is integrated into Visual Studio.

  • Produces Microsoft intermediate language (MSIL) output, you can debug programs with the managed code DE, which is also integrated into Visual Studio.

  • Targets a proprietary operating system or some other runtime environment, you need to write your own DE.

Whichever approach you take, you still need an expression evaluator. For more information, see Writing a Common Language Runtime Expression Evaluator.

For more information on implementing debugging for your language, see Getting Started (Visual Studio Debugging SDK) in the Visual Studio Debugging SDK.

See Also

Concepts

Getting Started (Visual Studio Debugging SDK)

Writing a Common Language Runtime Expression Evaluator