Debugger: Speed up disassembly retrieval

This skips the case of "disassembling a function given an address"
with indeterministic time behaviour and and immediately falls back
to the fixed range version instead.

Change-Id: I90ec56198a7d767bcf0a9ffb030637c2ee5c617a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
hjk
2013-01-17 13:20:04 +01:00
parent 6ec9dd10a5
commit e2f86d9e48

View File

@@ -4434,11 +4434,15 @@ void GdbEngine::fetchDisassemblerByCliPointMixed(const DisassemblerAgentCookie &
void GdbEngine::fetchDisassemblerByCliPointPlain(const DisassemblerAgentCookie &ac0) void GdbEngine::fetchDisassemblerByCliPointPlain(const DisassemblerAgentCookie &ac0)
{ {
DisassemblerAgentCookie ac = ac0; // This here
QTC_ASSERT(ac.agent, return); // DisassemblerAgentCookie ac = ac0;
postCommand(disassemblerCommand(ac.agent->location(), false), Discardable, // QTC_ASSERT(ac.agent, return);
CB(handleFetchDisassemblerByCliPointPlain), // postCommand(disassemblerCommand(ac.agent->location(), false), Discardable,
QVariant::fromValue(ac)); // CB(handleFetchDisassemblerByCliPointPlain),
// QVariant::fromValue(ac));
// takes far to long if function boundaries are not hit.
// Skip this feature and immediately fall back to the 'range' verion:
fetchDisassemblerByCliRangePlain(ac0);
} }
void GdbEngine::fetchDisassemblerByCliRangeMixed(const DisassemblerAgentCookie &ac0) void GdbEngine::fetchDisassemblerByCliRangeMixed(const DisassemblerAgentCookie &ac0)