Skip to content
| Marketplace
Sign in
Visual Studio>Tools>Expression Tree Explorer
Expression Tree Explorer

Expression Tree Explorer

Preview

Tomáš Pečinka

|
3 installs
| (0) | Free
A debugger visualizer for exploring expression trees in Visual Studio.
Download

Expression Tree Explorer

A Visual Studio debugger visualizer for C# expression trees.

Expression Tree Explorer screenshot

Description

Expression Tree Explorer is a debugger visualizer for Expression<TDelegate> variables. Open it from the debugger and the expression is broken into four linked views:

  • Tree view - the full node tree with color-coded badges (node kind, ExpressionType, static type). Expand/collapse all from the toolbar.
  • Detail panel - properties of the selected node (operator, method, member, lifted flags, runtime values), a watch expression you can copy, a Copy Watch button, and a link to the MS docs for that node type.
  • Source panel - the expression as readable C#. Clicking a tree node highlights the matching span. Switch between ReadableExpressions, ToString, and DebugView from the toolbar.
  • End nodes tab - a flat list of all terminal nodes: parameters, constants, closed-over variables, and defaults. Useful when the tree gets deep.

Supported node types

Lambda, Binary, Member, Constant, Parameter, MethodCall, Unary, MemberInit, Conditional, New, TypeBinary, Invocation, NewArray, ListInit, Index, Default, Block, Try, Switch, Goto, Label, Loop. Everything else falls back to a generic node so the tree never fails to render.

Getting started

1. Install from the Visual Studio Marketplace.

2. Set a breakpoint where you have an Expression<TDelegate> in scope:

int minAge = 18;
string prefix = "A";
Expression<Func<User, bool>> filter = x => x.Age >= minAge && x.Name.StartsWith(prefix);

3. Hover over the variable, click the magnifier, pick Expression Tree Explorer.

Requirements

  • Visual Studio 2022 (17.9+) or Visual Studio 2026, any edition.
  • The variable must be statically typed as Expression<TDelegate> (plain Expression or LambdaExpression won't trigger the visualizer).

Limitations

The extension uses the VisualStudio.Extensibility out-of-process model (Remote UI), which has a few hard limits:

  • Source highlighting is one-way: tree -> source. You can't click in the source panel to select a node.
  • Only C# output (ReadableExpressions doesn't support VB.NET).
  • Runtime value extraction only reads ConstantExpression.Value and closure fields. No user code is executed.
  • No multi-select and no "open in new window" (Remote UI doesn't support either).

Privacy

Everything runs locally. The expression tree is serialized inside your debuggee process and displayed in Visual Studio. No telemetry or network calls.

Credits

  • Readable C# output is generated by AgileObjects.ReadableExpressions (MIT).
  • Main inspiration for this project was ExpressionTreeVisualizer by Zev Spitz.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft