Commit d3d66bb3 authored by hjk's avatar hjk
Browse files

Debugger: Handle manually set catch breakpoint gracefully



Task-number: QTCREATORBUG-10096
Change-Id: Ia9458840247ae1815751e3c58e1f21990af0cc34
Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
parent a27402c7
......@@ -986,6 +986,8 @@ void BreakHandler::notifyBreakpointReleased(BreakpointModelId id)
|| it->data.type == WatchpointAtExpression
|| it->data.type == BreakpointByAddress)
it->data.enabled = false;
else
it->data.address = 0;
layoutChanged();
}
......@@ -1073,7 +1075,7 @@ void BreakHandler::handleAlienBreakpoint(const BreakpointResponse &response, Deb
else
setResponse(id, response);
} else {
BreakpointModelId id(++currentId);
id = BreakpointModelId(++currentId);
const int row = m_storage.size();
beginInsertRows(QModelIndex(), row, row);
......
......@@ -2524,6 +2524,18 @@ void GdbEngine::updateResponse(BreakpointResponse &response, const GdbMi &bkpt)
response.type = WatchpointAtExpression;
response.expression = QString::fromLocal8Bit(what);
}
} else if (child.data() == "breakpoint") {
QByteArray catchType = bkpt["catch-type"].data();
if (catchType == "throw")
response.type = BreakpointAtThrow;
else if (catchType == "catch")
response.type = BreakpointAtCatch;
else if (catchType == "fork")
response.type = BreakpointAtFork;
else if (catchType == "exec")
response.type = BreakpointAtExec;
else if (catchType == "syscall")
response.type = BreakpointAtSysCall;
}
} else if (child.hasName("original-location")) {
originalLocation = child.data();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment