summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2020-01-13 11:02:27 +0100
committerChristian Stenger <christian.stenger@qt.io>2020-01-14 10:02:13 +0000
commitfefdbdfcd8f1c6b610bf9bf5b2863915da6d0980 (patch)
tree2f44de970911f91b4508fbbe4a9fb2ec1a0de90d
parent499115fd94a454296353231ff874c896ba627039 (diff)
downloadqt-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.py11
-rw-r--r--src/plugins/debugger/lldb/lldbengine.cpp4
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);