debugger: better guess at engine capabilities in dummy engine

Change-Id: Ia37086a126df7f7d84b9509c54472c5d9be6b4ef
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
hjk
2012-01-12 19:32:25 +01:00
committed by hjk
parent 8e1f24a638
commit 7ef450af6d
2 changed files with 24 additions and 1 deletions

View File

@@ -485,11 +485,33 @@ public:
void runEngine() {} void runEngine() {}
void shutdownEngine() {} void shutdownEngine() {}
void shutdownInferior() {} void shutdownInferior() {}
unsigned debuggerCapabilities() const { return AddWatcherCapability; } unsigned debuggerCapabilities() const;
bool acceptsBreakpoint(BreakpointModelId) const { return false; } bool acceptsBreakpoint(BreakpointModelId) const { return false; }
bool acceptsDebuggerCommands() const { return false; } bool acceptsDebuggerCommands() const { return false; }
}; };
unsigned DummyEngine::debuggerCapabilities() const
{
// This can only be a first approximation of what to expect when running.
Project *project = ProjectExplorerPlugin::instance()->currentProject();
if (!project)
return 0;
Target *target = project->activeTarget();
QTC_ASSERT(target, return 0);
RunConfiguration *activeRc = target->activeRunConfiguration();
QTC_ASSERT(activeRc, return 0);
// This is a non-started Cdb or Gdb engine:
if (activeRc->useCppDebugger())
return WatchpointByAddressCapability
| BreakConditionCapability
| TracePointCapability
| OperateByInstructionCapability;
// This is a Qml or unknown engine.
return AddWatcherCapability;
}
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
// //
// DebugMode // DebugMode

View File

@@ -711,6 +711,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
const bool canHandleWatches = engineCapabilities & AddWatcherCapability; const bool canHandleWatches = engineCapabilities & AddWatcherCapability;
const DebuggerState state = engine->state(); const DebuggerState state = engine->state();
const bool canInsertWatches = state == InferiorStopOk const bool canInsertWatches = state == InferiorStopOk
|| state == DebuggerNotReady
|| state == InferiorUnrunnable || state == InferiorUnrunnable
|| (state == InferiorRunOk && (engineCapabilities & AddWatcherWhileRunningCapability)); || (state == InferiorRunOk && (engineCapabilities & AddWatcherWhileRunningCapability));