Une expression est un fragment de code pouvant être évalué pour générer une valeur. Le contexte d'une expression dépend du modèle de débogage. Certaines expressions doivent en effet générer un résultat à un emplacement spécifique du programme pour que les variables puissent être référencées. IExpression définit une interface générale pour les expressions de débogage.
Un gestionnaire d'expressions (IExpressionManager) assure le suivi de toutes les expressions dans l'espace de travail. Il émet également des événements pour les modules d'écoute intéressés lorsque des expressions sont ajoutées, supprimées ou modifiées.
Les expressions peuvent être utilisées pour implémenter des "inspecteurs" ou des "éditeurs de code" permettant aux utilisateurs d'évaluer des fragments de code. Les outils Java utilisent des expressions pour implémenter celle générée lors de l'inspection du code source.
Une expression de contrôle est une expression évaluée de manière répétée lors de l'exécution du programme. IWatchExpression définit un type spécifique de IExpression qui met à jour la valeur de l'expression lorsqu'elle est fournie avec un nouveau contexte de débogage. Les expressions de contrôle sont utilisées pour implémenter des "listes de contrôle" qui affichent les modifications de la valeur d'une expression pendant l'exécution d'un programme.