diff options
author | Christian Stenger <christian.stenger@qt.io> | 2020-01-13 11:02:27 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2020-01-14 10:02:13 +0000 |
commit | fefdbdfcd8f1c6b610bf9bf5b2863915da6d0980 (patch) | |
tree | 2f44de970911f91b4508fbbe4a9fb2ec1a0de90d | |
parent | 499115fd94a454296353231ff874c896ba627039 (diff) | |
download | qt-creator-fefdbdfcd8f1c6b610bf9bf5b2863915da6d0980.tar.gz |
Debugger: Do not waste CPU when using LLDB
Fixes: QTCREATORBUG-23311
Change-Id: I5b1c40663c7977322e806af2e0393a3730e70049
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | share/qtcreator/debugger/lldbbridge.py | 11 | ||||
-rw-r--r-- | src/plugins/debugger/lldb/lldbengine.cpp | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 689753a800..bfea3b04c0 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 f75c491d5d..318944f4dc 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); |