summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/breakhandler.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-10-20 10:45:59 +0200
committerhjk <qthjk@ovi.com>2011-10-20 10:51:09 +0200
commit6da15db62c796de1cd1b01eb8976cdffeddeedf8 (patch)
tree82c1961c7a509e341528ac00fc778ab0fc001677 /src/plugins/debugger/breakhandler.cpp
parent734829151490d6ceea3d3911fec29d4cbd5a6ea5 (diff)
downloadqt-creator-6da15db62c796de1cd1b01eb8976cdffeddeedf8.tar.gz
Debugger: Prevent adding invalid breakpoints.
Check on session restore and add. In particular, suppress watchpoints at 0x0, which hang gdb. Change-Id: I648f53a709fabdebe641e478f367f1354a315ab1 Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/plugins/debugger/breakhandler.cpp')
-rw-r--r--src/plugins/debugger/breakhandler.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 0bc771de6b..e80b898aae 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -396,7 +396,11 @@ void BreakHandler::loadBreakpoints()
v = map.value(_("message"));
if (v.isValid())
data.message = v.toString();
- appendBreakpoint(data);
+ if (data.isValid()) {
+ appendBreakpoint(data);
+ } else {
+ qWarning("Not restoring invalid breakpoint: %s", qPrintable(data.toString()));
+ }
}
//qDebug() << "LOADED BREAKPOINTS" << this << list.size();
}
@@ -1036,7 +1040,11 @@ static int currentId = 0;
void BreakHandler::appendBreakpoint(const BreakpointParameters &data)
{
- QTC_ASSERT(data.type != UnknownType, return);
+ if (!data.isValid()) {
+ qWarning("Not adding invalid breakpoint: %s", qPrintable(data.toString()));
+ return;
+ }
+
BreakpointModelId id(++currentId);
const int row = m_storage.size();
beginInsertRows(QModelIndex(), row, row);