Un'espressione è un frammento di codice che può essere valutato per produrre un valore. Il contesto di un'espressione dipende dal modello di debug specifico. Per alcune espressioni potrebbe verificarsi la necessità di eseguire la valutazione in un percorso specifico del programma, in modo che sia possibile fare riferimento alle variabili. IExpression definisce un'interfaccia generale per le espressioni di debug.
Il gestore di espressioni IExpressionManager tiene traccia di tutte le espressioni dello spazio di lavoro. Inoltre, attiva gli eventi per i listener interessati quando vengono aggiunte, rimosse o modificate le espressioni.
Le espressioni possono essere utilizzate per implementare "inspector" o "bozze", che consentono agli utenti di valutare i frammenti di codice. La strumentazione Java utilizza espressioni per implementare l'espressione generata quando l'utente esamina il codice di origine.
Un'espressione di controllo è un'espressione ripetutamente valutata durante l'esecuzione del programma. IWatchExpression definisce un tipo specifico di IExpression che aggiorna il valore dell'espressione quando viene fornita con un nuovo contesto di debug. Le espressioni di controllo sono utilizzate per implementare gli "elenchi di controllo", che mostrano le modifiche nel valore di un'espressione durante l'esecuzione del programma.