A predicate-based Python debugger