diff --git a/src/plugins/debugger/logwindow.cpp b/src/plugins/debugger/logwindow.cpp index dd9530744b0..d50ca6e96cd 100644 --- a/src/plugins/debugger/logwindow.cpp +++ b/src/plugins/debugger/logwindow.cpp @@ -552,8 +552,14 @@ void LogWindow::showOutput(int channel, const QString &output) out.append(nchar); m_queuedOutput.append(out); - m_outputTimer.setSingleShot(true); - m_outputTimer.start(80); + // flush the output if it exceeds 16k to prevent out of memory exceptions on regular output + if (m_queuedOutput.size() > 16 * 1024) { + m_outputTimer.stop(); + doOutput(); + } else { + m_outputTimer.setSingleShot(true); + m_outputTimer.start(80); + } } void LogWindow::doOutput() diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 8201e13a71e..a254036bf12 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -899,9 +899,9 @@ static QColor valueColor(const WatchItem *item, int column) color = Theme::Debugger_WatchItem_ValueInvalid; else if (!model->m_contentsValid && !item->isInspect()) color = Theme::Debugger_WatchItem_ValueInvalid; - else if (column == 1 && item->value.isEmpty()) // This might still show 0x... + else if (item->value.isEmpty()) // This might still show 0x... color = Theme::Debugger_WatchItem_ValueInvalid; - else if (column == 1 && item->value != model->m_valueCache.value(item->iname)) + else if (item->value != model->m_valueCache.value(item->iname)) color = Theme::Debugger_WatchItem_ValueChanged; } }