forked from qt-creator/qt-creator
BareMetal: add variable support for device gdb commands
Change-Id: I192ccf4dc7a2599ead1fcdd11a4d59f0e22e3e1d Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -32,6 +32,7 @@
|
|||||||
#include "ui_baremetaldeviceconfigurationwidget.h"
|
#include "ui_baremetaldeviceconfigurationwidget.h"
|
||||||
#include "baremetaldevice.h"
|
#include "baremetaldevice.h"
|
||||||
|
|
||||||
|
#include <coreplugin/variablechooser.h>
|
||||||
#include <ssh/sshconnection.h>
|
#include <ssh/sshconnection.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
@@ -49,6 +50,8 @@ BareMetalDeviceConfigurationWidget::BareMetalDeviceConfigurationWidget(
|
|||||||
connect(m_ui->gdbHostLineEdit, SIGNAL(editingFinished()), SLOT(hostnameChanged()));
|
connect(m_ui->gdbHostLineEdit, SIGNAL(editingFinished()), SLOT(hostnameChanged()));
|
||||||
connect(m_ui->gdbPortSpinBox, SIGNAL(valueChanged(int)), SLOT(portChanged()));
|
connect(m_ui->gdbPortSpinBox, SIGNAL(valueChanged(int)), SLOT(portChanged()));
|
||||||
connect(m_ui->gdbCommandsTextEdit, SIGNAL(textChanged()), SLOT(gdbInitCommandsChanged()));
|
connect(m_ui->gdbCommandsTextEdit, SIGNAL(textChanged()), SLOT(gdbInitCommandsChanged()));
|
||||||
|
Core::VariableChooser::addVariableSupport(m_ui->gdbCommandsTextEdit);
|
||||||
|
new Core::VariableChooser(this);
|
||||||
initGui();
|
initGui();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "baremetaldeviceconfigurationwizardpages.h"
|
#include "baremetaldeviceconfigurationwizardpages.h"
|
||||||
#include "ui_baremetaldeviceconfigurationwizardsetuppage.h"
|
#include "ui_baremetaldeviceconfigurationwizardsetuppage.h"
|
||||||
|
|
||||||
|
#include <coreplugin/variablechooser.h>
|
||||||
#include <projectexplorer/devicesupport/idevice.h>
|
#include <projectexplorer/devicesupport/idevice.h>
|
||||||
|
|
||||||
namespace BareMetal {
|
namespace BareMetal {
|
||||||
@@ -47,6 +48,8 @@ BareMetalDeviceConfigurationWizardSetupPage::BareMetalDeviceConfigurationWizardS
|
|||||||
connect(d->ui.nameLineEdit, 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.portSpinBox, SIGNAL(valueChanged(int)), SIGNAL(completeChanged()));
|
||||||
connect(d->ui.gdbInitCommandsPlainTextEdit, SIGNAL(textChanged()), SIGNAL(completeChanged()));
|
connect(d->ui.gdbInitCommandsPlainTextEdit, SIGNAL(textChanged()), SIGNAL(completeChanged()));
|
||||||
|
Core::VariableChooser::addVariableSupport(d->ui.gdbInitCommandsPlainTextEdit);
|
||||||
|
new Core::VariableChooser(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
BareMetalDeviceConfigurationWizardSetupPage::~BareMetalDeviceConfigurationWizardSetupPage()
|
BareMetalDeviceConfigurationWizardSetupPage::~BareMetalDeviceConfigurationWizardSetupPage()
|
||||||
|
|||||||
@@ -71,8 +71,11 @@
|
|||||||
<item row="7" column="1">
|
<item row="7" column="1">
|
||||||
<widget class="QPlainTextEdit" name="gdbInitCommandsPlainTextEdit">
|
<widget class="QPlainTextEdit" name="gdbInitCommandsPlainTextEdit">
|
||||||
<property name="plainText">
|
<property name="plainText">
|
||||||
<string>load
|
<string>set remote hardware-breakpoint-limit 6
|
||||||
monitor reset</string>
|
set remote hardware-watchpoint-limit 4
|
||||||
|
monitor reset halt
|
||||||
|
load
|
||||||
|
monitor reset halt</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ const char QML_UPDATE_ON_SAVE[] = "Debugger.QmlUpdateOnSave";
|
|||||||
const char QML_SELECTTOOL[] = "Debugger.QmlSelectTool";
|
const char QML_SELECTTOOL[] = "Debugger.QmlSelectTool";
|
||||||
const char QML_ZOOMTOOL[] = "Debugger.QmlZoomTool";
|
const char QML_ZOOMTOOL[] = "Debugger.QmlZoomTool";
|
||||||
|
|
||||||
|
// VariableManager Prefix
|
||||||
|
const char PrefixDebugExecutable[] = "DebuggedExecutable";
|
||||||
|
|
||||||
const char TASK_CATEGORY_DEBUGGER_DEBUGINFO[] = "Debuginfo";
|
const char TASK_CATEGORY_DEBUGGER_DEBUGINFO[] = "Debuginfo";
|
||||||
const char TASK_CATEGORY_DEBUGGER_RUNTIME[] = "DebugRuntime";
|
const char TASK_CATEGORY_DEBUGGER_RUNTIME[] = "DebugRuntime";
|
||||||
|
|||||||
@@ -172,6 +172,11 @@ public:
|
|||||||
connect(&m_locationTimer, SIGNAL(timeout()), SLOT(resetLocation()));
|
connect(&m_locationTimer, SIGNAL(timeout()), SLOT(resetLocation()));
|
||||||
connect(debuggerCore()->action(IntelFlavor), SIGNAL(valueChanged(QVariant)),
|
connect(debuggerCore()->action(IntelFlavor), SIGNAL(valueChanged(QVariant)),
|
||||||
SLOT(reloadDisassembly()));
|
SLOT(reloadDisassembly()));
|
||||||
|
Core::VariableManager::registerFileVariables(Constants::PrefixDebugExecutable,
|
||||||
|
tr("Debugged executable"));
|
||||||
|
connect(Core::VariableManager::instance(),
|
||||||
|
SIGNAL(variableUpdateRequested(QByteArray)),
|
||||||
|
SLOT(updateVariable(QByteArray)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
@@ -183,6 +188,13 @@ public slots:
|
|||||||
void doInterruptInferior();
|
void doInterruptInferior();
|
||||||
void doFinishDebugger();
|
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()
|
void reloadDisassembly()
|
||||||
{
|
{
|
||||||
m_disassemblerAgent.reload();
|
m_disassemblerAgent.reload();
|
||||||
@@ -305,6 +317,7 @@ public:
|
|||||||
bool m_isStateDebugging;
|
bool m_isStateDebugging;
|
||||||
|
|
||||||
Utils::FileInProjectFinder m_fileFinder;
|
Utils::FileInProjectFinder m_fileFinder;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include "debuggerconstants.h"
|
#include "debuggerconstants.h"
|
||||||
#include "breakpoint.h" // For BreakpointModelId.
|
#include "breakpoint.h" // For BreakpointModelId.
|
||||||
#include "threaddata.h" // For ThreadId.
|
#include "threaddata.h" // For ThreadId.
|
||||||
|
#include "coreplugin/variablemanager.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
|
|||||||
@@ -4460,7 +4460,8 @@ void GdbEngine::handleInferiorPrepared()
|
|||||||
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
|
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
|
||||||
|
|
||||||
if (!sp.commandsAfterConnect.isEmpty()) {
|
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);
|
postCommand(command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user