diff --git a/pudb/debugger.py b/pudb/debugger.py index 2259d824..01f19bb3 100644 --- a/pudb/debugger.py +++ b/pudb/debugger.py @@ -1123,7 +1123,9 @@ def edit_inspector_detail(w, size, key): iinfo.access_level = "all" if var.watch_expr is not None: - var.watch_expr.expression = watch_edit.get_edit_text() + new_expression = watch_edit.get_edit_text() + if new_expression != var.watch_expr.expression: + var.watch_expr.set_expression(new_expression) elif result == "del": try: diff --git a/pudb/var_view.py b/pudb/var_view.py index 36ebecc7..623c0889 100644 --- a/pudb/var_view.py +++ b/pudb/var_view.py @@ -215,6 +215,10 @@ def eval(self, frame_globals, frame_locals): return WatchEvalError() return self._value + def set_expression(self, expression): + self.expression = expression + self._value = self.NOT_EVALUATED + class WatchEvalError: def __str__(self):