diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 689753a8003..bfea3b04c0a 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -29,6 +29,7 @@ import platform import re import sys import threading +import time import lldb from contextlib import contextmanager @@ -953,14 +954,16 @@ class Dumper(DumperBase): def loop(self): event = lldb.SBEvent() - broadcaster = self.target.GetBroadcaster() + #broadcaster = self.target.GetBroadcaster() listener = self.debugger.GetListener() + while True: - sys.stdout.flush() # IMPORTANT! to receive process state changes with lldb 1100 while listener.GetNextEvent(event): self.handleEvent(event) - if listener.WaitForEventForBroadcaster(0, broadcaster, event): - self.handleEvent(event) + time.sleep(0.25) + + #if listener.WaitForEventForBroadcaster(0, broadcaster, event): + # self.handleEvent(event) def describeError(self, error): diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index f75c491d5de..318944f4dc3 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -203,7 +203,9 @@ void LldbEngine::setupEngine() const FilePath lldbCmd = runParameters().debugger.executable; showMessage("STARTING LLDB: " + lldbCmd.toUserOutput()); - m_lldbProc.setEnvironment(runParameters().debugger.environment); + Environment environment = runParameters().debugger.environment; + environment.appendOrSet("PYTHONUNBUFFERED", "1"); // avoid flushing problem on macOS + m_lldbProc.setEnvironment(environment); if (QFileInfo(runParameters().debugger.workingDirectory).isDir()) m_lldbProc.setWorkingDirectory(runParameters().debugger.workingDirectory);