diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp b/src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp index 058692fd0e4..faa31c05894 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp @@ -32,6 +32,7 @@ #include "ui_baremetaldeviceconfigurationwidget.h" #include "baremetaldevice.h" +#include #include #include #include @@ -49,6 +50,8 @@ BareMetalDeviceConfigurationWidget::BareMetalDeviceConfigurationWidget( connect(m_ui->gdbHostLineEdit, SIGNAL(editingFinished()), SLOT(hostnameChanged())); connect(m_ui->gdbPortSpinBox, SIGNAL(valueChanged(int)), SLOT(portChanged())); connect(m_ui->gdbCommandsTextEdit, SIGNAL(textChanged()), SLOT(gdbInitCommandsChanged())); + Core::VariableChooser::addVariableSupport(m_ui->gdbCommandsTextEdit); + new Core::VariableChooser(this); initGui(); } diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp b/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp index a2eea6864c2..717a6190789 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp @@ -30,6 +30,7 @@ #include "baremetaldeviceconfigurationwizardpages.h" #include "ui_baremetaldeviceconfigurationwizardsetuppage.h" +#include #include namespace BareMetal { @@ -43,10 +44,12 @@ BareMetalDeviceConfigurationWizardSetupPage::BareMetalDeviceConfigurationWizardS d->ui.setupUi(this); setTitle(tr("Set up GDB Server or Hardware Debugger")); setSubTitle(QLatin1String(" ")); // For Qt bug (background color) - connect(d->ui.hostNameLineEdit,SIGNAL(textChanged(QString)),SIGNAL(completeChanged())); - connect(d->ui.nameLineEdit,SIGNAL(textChanged(QString)),SIGNAL(completeChanged())); - connect(d->ui.portSpinBox,SIGNAL(valueChanged(int)),SIGNAL(completeChanged())); - connect(d->ui.gdbInitCommandsPlainTextEdit,SIGNAL(textChanged()),SIGNAL(completeChanged())); + connect(d->ui.hostNameLineEdit, SIGNAL(textChanged(QString)), SIGNAL(completeChanged())); + connect(d->ui.nameLineEdit, SIGNAL(textChanged(QString)), SIGNAL(completeChanged())); + connect(d->ui.portSpinBox, SIGNAL(valueChanged(int)), SIGNAL(completeChanged())); + connect(d->ui.gdbInitCommandsPlainTextEdit, SIGNAL(textChanged()), SIGNAL(completeChanged())); + Core::VariableChooser::addVariableSupport(d->ui.gdbInitCommandsPlainTextEdit); + new Core::VariableChooser(this); } BareMetalDeviceConfigurationWizardSetupPage::~BareMetalDeviceConfigurationWizardSetupPage() diff --git a/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui b/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui index c3e7201dae5..621631e2cc4 100644 --- a/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui +++ b/src/plugins/baremetal/baremetaldeviceconfigurationwizardsetuppage.ui @@ -71,8 +71,11 @@ - load -monitor reset + set remote hardware-breakpoint-limit 6 +set remote hardware-watchpoint-limit 4 +monitor reset halt +load +monitor reset halt diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h index 188dcaa7b73..0460cb08e11 100644 --- a/src/plugins/debugger/debuggerconstants.h +++ b/src/plugins/debugger/debuggerconstants.h @@ -64,6 +64,8 @@ const char QML_UPDATE_ON_SAVE[] = "Debugger.QmlUpdateOnSave"; const char QML_SELECTTOOL[] = "Debugger.QmlSelectTool"; const char QML_ZOOMTOOL[] = "Debugger.QmlZoomTool"; +// VariableManager Prefix +const char PrefixDebugExecutable[] = "DebuggedExecutable"; const char TASK_CATEGORY_DEBUGGER_DEBUGINFO[] = "Debuginfo"; const char TASK_CATEGORY_DEBUGGER_RUNTIME[] = "DebugRuntime"; diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 17ccef61fd8..165df30f19c 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -172,6 +172,11 @@ public: connect(&m_locationTimer, SIGNAL(timeout()), SLOT(resetLocation())); connect(debuggerCore()->action(IntelFlavor), SIGNAL(valueChanged(QVariant)), SLOT(reloadDisassembly())); + Core::VariableManager::registerFileVariables(Constants::PrefixDebugExecutable, + tr("Debugged executable")); + connect(Core::VariableManager::instance(), + SIGNAL(variableUpdateRequested(QByteArray)), + SLOT(updateVariable(QByteArray))); } public slots: @@ -183,6 +188,13 @@ public slots: void doInterruptInferior(); void doFinishDebugger(); + void updateVariable(QByteArray variable) { + if (Core::VariableManager::isFileVariable(variable, Constants::PrefixDebugExecutable)) { + VariableManager::insert(variable, Core::VariableManager::fileVariableValue(variable, + Constants::PrefixDebugExecutable, QFileInfo(m_startParameters.executable))); + } + } + void reloadDisassembly() { m_disassemblerAgent.reload(); @@ -305,6 +317,7 @@ public: bool m_isStateDebugging; Utils::FileInProjectFinder m_fileFinder; + }; diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index d8e645c73c8..e1c41638841 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -34,6 +34,7 @@ #include "debuggerconstants.h" #include "breakpoint.h" // For BreakpointModelId. #include "threaddata.h" // For ThreadId. +#include "coreplugin/variablemanager.h" #include diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 2953b33397f..705e19fc2bc 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4460,7 +4460,8 @@ void GdbEngine::handleInferiorPrepared() QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state()); if (!sp.commandsAfterConnect.isEmpty()) { - foreach (QByteArray command, sp.commandsAfterConnect.split('\n')) { + QByteArray substitutedCommands = Core::VariableManager::expandedString(QString::fromLatin1(sp.commandsAfterConnect)).toLatin1(); + foreach (QByteArray command, substitutedCommands.split('\n')) { postCommand(command); } }