diff --git a/python/tvm/script/parser/core/parser.py b/python/tvm/script/parser/core/parser.py index 7b7dd066c3fa..ae79eef1265c 100644 --- a/python/tvm/script/parser/core/parser.py +++ b/python/tvm/script/parser/core/parser.py @@ -522,7 +522,18 @@ def report_error( msg = "KeyError: " + str(err) else: msg = str(err) - self.diag.error(node, msg) + + try: + self.diag.error(node, msg) + except Exception as diag_err: + # Calling self.diag.error is guaranteed to throw an + # exception. When shown to a user, this error should + # reference the point of error within the provided + # TVMScript. However, when caught in pdb, the full + # traceback should be available for debugging. + if isinstance(err, Exception): + diag_err = diag_err.with_traceback(err.__traceback__) + raise diag_err def visit(self, node: doc.AST) -> None: """The general visiting method.