Debugger[CDB]: Move breakpoint back from corrected location.

Make it fully work.

Task-number: QTCREATORBUG-4842
This commit is contained in:
Friedemann Kleint
2011-05-11 12:18:32 +02:00
parent b6e373bcda
commit d58f0e7c75
2 changed files with 11 additions and 3 deletions

View File

@@ -781,6 +781,15 @@ static bool isAllowedTransition(BreakpointState from, BreakpointState to)
return false;
}
bool BreakHandler::isEngineRunning(BreakpointId id) const
{
if (const DebuggerEngine *e = engine(id)) {
const DebuggerState state = e->state();
return state != DebuggerFinished && state != DebuggerNotReady;
}
return false;
}
void BreakHandler::setState(BreakpointId id, BreakpointState state)
{
Iterator it = m_storage.find(id);
@@ -1028,10 +1037,8 @@ void BreakHandler::updateLineNumberFromMarker(BreakpointId id, int lineNumber)
// Ignore updates to the "real" line number while the debugger is
// running, as this can be triggered by moving the breakpoint to
// the next line that generated code.
if (it->response.number == 0) {
// FIXME: Do we need yet another data member?
if (!isEngineRunning(id))
it->data.lineNumber = lineNumber;
}
updateMarker(id);
emit layoutChanged();
}

View File

@@ -168,6 +168,7 @@ private:
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
Qt::ItemFlags flags(const QModelIndex &index) const;
bool isEngineRunning(BreakpointId id) const;
void setState(BreakpointId id, BreakpointState state);
void loadBreakpoints();
void saveBreakpoints();