m_manager->breakByFunctionMain();
QSharedPointer<RunConfiguration> rc = activeRunConfiguration();
+ if (rc.isNull())
+ rc = DebuggerRunner::createDefaultRunConfiguration(sp->executable);
+
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp, StartExternal))
runControl->start();
sp->crashParameter = crashParameter;
const DebuggerStartMode dsm = crashParameter.isEmpty() ? AttachExternal : AttachCrashedExternal;
QSharedPointer<RunConfiguration> rc = activeRunConfiguration();
+ if (rc.isNull())
+ rc = DebuggerRunner::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp, dsm))
runControl->start();
using ProjectExplorer::RunControl;
using ProjectExplorer::ApplicationRunConfiguration;
+// A default run configuration for external executables or attaching to
+// running processes by id.
+class DefaultApplicationRunConfiguration : public ProjectExplorer::ApplicationRunConfiguration
+{
+public:
+ explicit DefaultApplicationRunConfiguration(const QString &executable = QString());
+
+ virtual QString executable() const { return m_executable; }
+ virtual RunMode runMode() const { return Gui; }
+ virtual QString workingDirectory() const { return QString(); }
+ virtual QStringList commandLineArguments() const { return QStringList(); }
+ virtual ProjectExplorer::Environment environment() const
+ { return ProjectExplorer::Environment(); }
+ virtual QString dumperLibrary() const { return QString(); }
+ virtual QStringList dumperLibraryLocations() const { return QStringList(); }
+ virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const
+ { return ProjectExplorer::ToolChain::UNKNOWN; }
+ virtual QWidget *configurationWidget() { return 0; }
+
+private:
+ const QString m_executable;
+};
+
+DefaultApplicationRunConfiguration::DefaultApplicationRunConfiguration(const QString &executable) :
+ ProjectExplorer::ApplicationRunConfiguration(0),
+ m_executable(executable)
+{
+}
////////////////////////////////////////////////////////////////////////
//
return tr("Debug");
}
+RunConfigurationPtr DebuggerRunner::createDefaultRunConfiguration(const QString &executable)
+{
+ return RunConfigurationPtr(new DefaultApplicationRunConfiguration(executable));
+}
+
RunControl *DebuggerRunner::run(RunConfigurationPtr runConfiguration,
const QString &mode,
const QSharedPointer<DebuggerStartParameters> &sp,
const QSharedPointer<DebuggerStartParameters> &sp,
DebuggerStartMode startMode);
+ static RunConfigurationPtr createDefaultRunConfiguration(const QString &executable = QString());
+
private:
QSharedPointer<DebuggerStartParameters> m_startParameters;
DebuggerManager *m_manager;