summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2013-01-17 13:20:04 +0100
committerhjk <qthjk@ovi.com>2013-01-17 16:59:34 +0100
commite2f86d9e48bd3ba424079fe34b002a7cbd4c63db (patch)
tree233776399f53df04d4f5a66bd3f29b1c8f61b72b
parent6ec9dd10a5d8e232687c850b83d89c1746dc34e5 (diff)
downloadqt-creator-e2f86d9e48bd3ba424079fe34b002a7cbd4c63db.tar.gz
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>
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 9b63495d16..c9588c2489 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -4434,11 +4434,15 @@ void GdbEngine::fetchDisassemblerByCliPointMixed(const DisassemblerAgentCookie &
void GdbEngine::fetchDisassemblerByCliPointPlain(const DisassemblerAgentCookie &ac0)
{
- DisassemblerAgentCookie ac = ac0;
- QTC_ASSERT(ac.agent, return);
- postCommand(disassemblerCommand(ac.agent->location(), false), Discardable,
- CB(handleFetchDisassemblerByCliPointPlain),
- QVariant::fromValue(ac));
+ // This here
+ // DisassemblerAgentCookie ac = ac0;
+ // QTC_ASSERT(ac.agent, return);
+ // postCommand(disassemblerCommand(ac.agent->location(), false), Discardable,
+ // 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)