Debugger: Handle per-instruction stepping with LLDB properly

Change-Id: I0030b769e977c6ffced1a87715831386ef0d5319
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-06-11 18:07:59 +02:00
parent 5a631f251e
commit 8ba09eabca

View File

@@ -479,6 +479,9 @@ void LldbEngine::refreshDisassembly(const GdbMi &data)
dl.data = line["inst"].toUtf8();
dl.function = line["func-name"].toUtf8();
dl.offset = line["offset"].toInt();
QByteArray comment = line["comment"].data();
if (!comment.isEmpty())
dl.data += QString::fromUtf8(" # " + comment);
result.appendLine(dl);
}
agent->setContents(result);
@@ -985,9 +988,15 @@ void LldbEngine::refreshState(const GdbMi &reportedState)
void LldbEngine::refreshLocation(const GdbMi &reportedLocation)
{
QString file = reportedLocation["file"].toUtf8();
int line = reportedLocation["line"].toInt();
gotoLocation(Location(file, line));
if (debuggerCore()->boolSetting(OperateByInstruction)) {
Location loc(reportedLocation["addr"].toAddress());
loc.setNeedsMarker(true);
gotoLocation(loc);
} else {
QString file = reportedLocation["file"].toUtf8();
int line = reportedLocation["line"].toInt();
gotoLocation(Location(file, line));
}
}
void LldbEngine::reloadRegisters()