summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp23
-rw-r--r--src/plugins/debugger/gdbengine.cpp19
2 files changed, 30 insertions, 12 deletions
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 204345a022..8fa465d543 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -894,6 +894,7 @@ void DebuggerPlugin::writeSettings() const
s->setValue("Locked", m_toggleLockedAction->isChecked());
s->setValue("Location", m->m_gdbCmd);
s->setValue("Environment", m->m_gdbEnv);
+ s->setValue("ScriptFile", m->m_scriptFile);
s->setValue("AutoRun", m->m_autoRun);
s->setValue("AutoQuit", m->m_autoQuit);
@@ -922,18 +923,18 @@ void DebuggerPlugin::readSettings()
s->beginGroup(QLatin1String("DebugMode"));
QByteArray ba = s->value("State", QByteArray()).toByteArray();
m_toggleLockedAction->setChecked(s->value("Locked", true).toBool());
- m->m_gdbCmd = s->value("Location", defaultCommand).toString();
- m->m_scriptFile= s->value("ScriptFile", defaultScript).toString();
- m->m_gdbEnv = s->value("Environment", "").toString();
- m->m_autoRun = s->value("AutoRun", true).toBool();
- m->m_autoQuit = s->value("AutoQuit", true).toBool();
-
- m->m_skipKnownFrames = s->value("SkipKnownFrames", false).toBool();
- m->m_debugDumpers = s->value("DebugDumpers", false).toBool();
+ m->m_gdbCmd = s->value("Location", defaultCommand).toString();
+ m->m_scriptFile = s->value("ScriptFile", defaultScript).toString();
+ m->m_gdbEnv = s->value("Environment", "").toString();
+ m->m_autoRun = s->value("AutoRun", true).toBool();
+ m->m_autoQuit = s->value("AutoQuit", true).toBool();
+
+ m->m_skipKnownFrames = s->value("SkipKnownFrames", false).toBool();
+ m->m_debugDumpers = s->value("DebugDumpers", false).toBool();
m->m_useCustomDumpers = s->value("UseCustomDupers", false).toBool();
- m->m_useFastStart = s->value("UseFastStart", false).toBool();
- m->m_useToolTips = s->value("UseToolTips", false).toBool();
- m->m_useTerminal = s->value("UseTerminal", false).toBool();
+ m->m_useFastStart = s->value("UseFastStart", false).toBool();
+ m->m_useToolTips = s->value("UseToolTips", false).toBool();
+ m->m_useTerminal = s->value("UseTerminal", false).toBool();
s->endGroup();
m_manager->mainWindow()->restoreState(ba);
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 79530908c7..a6d426d21d 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -696,7 +696,7 @@ void GdbEngine::sendCommand(const QString &command, int type,
//qDebug() << "";
if (!command.isEmpty()) {
- //qDebug() << qPrintable(currentTime()) << "RUNNING << cmd.command;
+ //qDebug() << qPrintable(currentTime()) << "RUNNING" << cmd.command;
m_gdbProc.write(cmd.command.toLatin1() + "\r\n");
//emit gdbInputAvailable(QString(), " " + currentTime());
emit gdbInputAvailable(QString(), "[" + currentTime() + "] " + cmd.command);
@@ -1520,6 +1520,7 @@ bool GdbEngine::startDebugger()
#if 0
qDebug() << "Command: " << q->settings()->m_gdbCmd;
qDebug() << "WorkingDirectory: " << m_gdbProc.workingDirectory();
+ qDebug() << "ScriptFile: " << q->settings()->m_scriptFile;
qDebug() << "Environment: " << m_gdbProc.environment();
qDebug() << "Arguments: " << gdbArgs;
qDebug() << "BuildDir: " << q->m_buildDir;
@@ -1599,6 +1600,22 @@ bool GdbEngine::startDebugger()
"dyld \".*libobjc.*\" all "
"dyld \".*CarbonDataFormatters.*\" all");
#endif
+
+ QString scriptFileName = q->settings()->m_scriptFile;
+ if (!scriptFileName.isEmpty()) {
+ QFile scriptFile(scriptFileName);
+ if (scriptFile.open(QIODevice::ReadOnly)) {
+ sendCommand("source " + scriptFileName);
+ } else {
+ QMessageBox::warning(q->mainWindow(),
+ tr("Cannot find debugger initialization script"),
+ tr("The debugger settings point to a script file at '%1' "
+ "which is not accessible. If a script file is not needed, "
+ "consider clearing that entry to avoid this warning. "
+ ).arg(scriptFileName));
+ }
+ }
+
if (q->startMode() == q->attachExternal) {
sendCommand("attach " + QString::number(q->m_attachedPID));
}