Uma expressão é uma porção de código que pode ser avaliada para produzir um valor. O contexto de uma expressão depende do modelo de depuração em particular. Algumas expressões podem precisar de ser avaliadas numa localização específica no programa de modo a que as respectivas variáveis possam ser referenciadas. IExpression define uma interface geral para expressões de depuração.
Um gestor de expressões (IExpressionManager) mantém um acompanhamento de todas as expressões no espaço de trabalho. Também desencadeia eventos para ouvintes interessados à medida que forem adicionadas, removidas ou alteradas expressões.
As expressões podem ser usadas para implementar "inspectores" ou "cadernos" que deixam os utilizadores avaliarem porções de código. As ferramentas Java utilizam expressões para implementar a expressão gerada quando o utilizador inspeccionar o código fonte.
Uma expressão de observância é uma expressão que é repetidamente avaliada à medida que o programa é executado. Uma IWatchExpression define uma espécie especializada de IExpression que actualiza o valor da expressão quando fornecida com um novo contexto de depuração. As expressões de observância são utilizadas para implementar "listas de observância", as quais mostram alterações no valor de uma expressão à medida que o programa é executado.