Debugger: Simplify removal of outdated L&E items

This removes the need of bookkeeping on the engine side. It's
basically a kind of mark-and-sweep: On update begin mark items
that are expected to change as outdated, while data arrives, undo
that marking, and update end remove all remaining marked items.

Change-Id: I739b84869033d511d5c9a80605c079e87ef4f6a7
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
hjk
2015-07-06 09:46:08 +02:00
parent 1587c171d6
commit d48ac14fba
10 changed files with 55 additions and 42 deletions

View File

@@ -447,8 +447,8 @@ void LldbEngine::handleResponse(const QByteArray &response)
foreach (const GdbMi &item, all.children()) {
const QByteArray name = item.name();
if (name == "all") {
watchHandler()->notifyUpdateFinished();
updateLocalsView(item);
watchHandler()->notifyUpdateFinished();
} else if (name == "dumpers") {
watchHandler()->addDumpers(item);
setupInferiorStage2();
@@ -864,7 +864,7 @@ void LldbEngine::doUpdateLocals(const UpdateParameters &params)
return;
}
watchHandler()->notifyUpdateStarted();
watchHandler()->notifyUpdateStarted(params.partialVariables());
DebuggerCommand cmd("updateData");
cmd.arg("nativeMixed", isNativeMixedActive());