From 58c3e2a425c8c8fdcb96ec08a61144a7020db98d Mon Sep 17 00:00:00 2001 From: Ed Williams Date: Mon, 30 Oct 2023 22:40:57 -1000 Subject: [PATCH] Base: set sys.last_vars to enable post mortem debugging after exception * Update Interpreter.cpp to enable stack trace This enables python debuggers to stack trace after an exception. See https://forum.freecad.org/viewtopic.php?p=714349#p714349 Co-authored-by: bdieterm <119257544+bdieterm@users.noreply.github.com> --- src/Base/Interpreter.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Base/Interpreter.cpp b/src/Base/Interpreter.cpp index 52c47168af..f9853c1659 100644 --- a/src/Base/Interpreter.cpp +++ b/src/Base/Interpreter.cpp @@ -125,6 +125,8 @@ void PyException::ReportException () const { if (!_isReported) { _isReported = true; + // set sys.last_vars to make post-mortem debugging work + PySys_SetObject("last_traceback", PP_last_traceback); Base::Console().DeveloperError("pyException","%s%s: %s\n", _stackTrace.c_str(), _errorType.c_str(), what()); }