diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index a835bf14aed..14b66feabe5 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4677,12 +4677,15 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &settingsIdHint) loadPythonDumpers(); - const QString script = sp.overrideStartScript; + return true; +} + +void GdbEngine::loadInitScript() +{ + const QString script = startParameters().overrideStartScript; if (!script.isEmpty()) { if (QFileInfo(script).isReadable()) { postCommand("source " + script.toLocal8Bit()); - // Re-do the setup, as the "source" might have changed something. - postCommand("bbsetup", ConsoleCommand, CB(handleHasPython)); } else { showMessageBox(QMessageBox::Warning, tr("Cannot find debugger initialization script"), @@ -4693,14 +4696,9 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &settingsIdHint) } } else { const QString commands = debuggerCore()->stringSetting(GdbStartupCommands); - if (!commands.isEmpty()) { + if (!commands.isEmpty()) postCommand(commands.toLocal8Bit()); - // Re-do the setup, as the "source" might have changed something. - postCommand("bbsetup", ConsoleCommand, CB(handleHasPython)); - } } - - return true; } void GdbEngine::loadPythonDumpers() @@ -4714,6 +4712,9 @@ void GdbEngine::loadPythonDumpers() ConsoleCommand|NonCriticalResponse); postCommand("python execfile('" + dumperSourcePath + "qttypes.py')", ConsoleCommand|NonCriticalResponse); + + loadInitScript(); + postCommand("bbsetup", ConsoleCommand, CB(handleHasPython)); } diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index 7cd27cdc82e..4fca654da6f 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -270,6 +270,7 @@ private: ////////// Gdb Process Management ////////// void handleAdapterStarted(); void defaultInferiorShutdown(const char *cmd); + void loadInitScript(); void loadPythonDumpers(); void pythonDumpersFailed();