From 9ae53e49ca7ebb13d2f347657fbb85e87e10a1f8 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 6 May 2009 13:27:11 +0200 Subject: [PATCH 01/22] debugger: rename 'AttachRemote' to 'StartRemote' --- src/plugins/debugger/debugger.pro | 2 +- src/plugins/debugger/debuggerdialogs.cpp | 20 +++++++++---------- src/plugins/debugger/debuggerdialogs.h | 10 +++++----- src/plugins/debugger/debuggermanager.cpp | 4 ++-- src/plugins/debugger/debuggermanager.h | 2 +- src/plugins/debugger/debuggerplugin.cpp | 17 +++++++--------- src/plugins/debugger/debuggerplugin.h | 4 ++-- src/plugins/debugger/gdbengine.cpp | 8 ++++---- ...chremotedialog.ui => startremotedialog.ui} | 4 ++-- 9 files changed, 34 insertions(+), 37 deletions(-) rename src/plugins/debugger/{attachremotedialog.ui => startremotedialog.ui} (95%) diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro index 3d364762c64..9db3871314d 100644 --- a/src/plugins/debugger/debugger.pro +++ b/src/plugins/debugger/debugger.pro @@ -77,7 +77,6 @@ SOURCES += \ gdboptionspage.cpp FORMS += attachexternaldialog.ui \ - attachremotedialog.ui \ attachcoredialog.ui \ breakbyfunction.ui \ breakcondition.ui \ @@ -85,6 +84,7 @@ FORMS += attachexternaldialog.ui \ gdboptionspage.ui \ commonoptionspage.ui \ startexternaldialog.ui \ + startremotedialog.ui \ RESOURCES += debugger.qrc diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index e404ea88e02..79bb783f296 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -31,8 +31,8 @@ #include "ui_attachcoredialog.h" #include "ui_attachexternaldialog.h" -#include "ui_attachremotedialog.h" #include "ui_startexternaldialog.h" +#include "ui_startremotedialog.h" #ifdef Q_OS_WIN # include "dbgwinutils.h" @@ -302,13 +302,13 @@ void AttachExternalDialog::pidChanged(const QString &pid) /////////////////////////////////////////////////////////////////////// // -// AttachRemoteDialog +// StartRemoteDialog // /////////////////////////////////////////////////////////////////////// -AttachRemoteDialog::AttachRemoteDialog(QWidget *parent) +StartRemoteDialog::StartRemoteDialog(QWidget *parent) : QDialog(parent), - m_ui(new Ui::AttachRemoteDialog) + m_ui(new Ui::StartRemoteDialog) { m_ui->setupUi(this); m_ui->buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); @@ -317,22 +317,22 @@ AttachRemoteDialog::AttachRemoteDialog(QWidget *parent) connect(m_ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); } -AttachRemoteDialog::~AttachRemoteDialog() +StartRemoteDialog::~StartRemoteDialog() { delete m_ui; } -void AttachRemoteDialog::setRemoteChannel(const QString &channel) +void StartRemoteDialog::setRemoteChannel(const QString &channel) { m_ui->channelLineEdit->setText(channel); } -QString AttachRemoteDialog::remoteChannel() const +QString StartRemoteDialog::remoteChannel() const { return m_ui->channelLineEdit->text(); } -void AttachRemoteDialog::setRemoteArchitectures(const QStringList &list) +void StartRemoteDialog::setRemoteArchitectures(const QStringList &list) { m_ui->architectureComboBox->clear(); if (!list.isEmpty()) { @@ -341,14 +341,14 @@ void AttachRemoteDialog::setRemoteArchitectures(const QStringList &list) } } -void AttachRemoteDialog::setRemoteArchitecture(const QString &arch) +void StartRemoteDialog::setRemoteArchitecture(const QString &arch) { int index = m_ui->architectureComboBox->findText(arch); if (index != -1) m_ui->architectureComboBox->setCurrentIndex(index); } -QString AttachRemoteDialog::remoteArchitecture() const +QString StartRemoteDialog::remoteArchitecture() const { int index = m_ui->architectureComboBox->currentIndex(); return m_ui->architectureComboBox->itemText(index); diff --git a/src/plugins/debugger/debuggerdialogs.h b/src/plugins/debugger/debuggerdialogs.h index c51fc3abe77..04f1e65ceda 100644 --- a/src/plugins/debugger/debuggerdialogs.h +++ b/src/plugins/debugger/debuggerdialogs.h @@ -40,8 +40,8 @@ class QPushButton; namespace Ui { class AttachCoreDialog; class AttachExternalDialog; -class AttachRemoteDialog; class StartExternalDialog; +class StartRemoteDialog; } // namespace Ui QT_END_NAMESPACE @@ -101,13 +101,13 @@ private: ProcessListFilterModel *m_model; }; -class AttachRemoteDialog : public QDialog +class StartRemoteDialog : public QDialog { Q_OBJECT public: - explicit AttachRemoteDialog(QWidget *parent); - ~AttachRemoteDialog(); + explicit StartRemoteDialog(QWidget *parent); + ~StartRemoteDialog(); void setRemoteChannel(const QString &host); void setRemoteArchitecture(const QString &arch); @@ -116,7 +116,7 @@ public: QString remoteArchitecture() const; private: - Ui::AttachRemoteDialog *m_ui; + Ui::StartRemoteDialog *m_ui; }; class StartExternalDialog : public QDialog diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 23cc84059d2..9942b002886 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -929,8 +929,8 @@ void DebuggerManager::startNewDebugger(DebuggerRunControl *runControl) m_attachedPID = -1; break; } - case AttachRemote: { - AttachRemoteDialog dlg(mainWindow()); + case StartRemote: { + StartRemoteDialog dlg(mainWindow()); QStringList arches; arches.append(_("i386:x86-64:intel")); dlg.setRemoteArchitectures(arches); diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 38a0c5d7b74..66336caace8 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -113,7 +113,7 @@ enum DebuggerStartMode StartExternal, // Start binary found in file system AttachExternal, // Attach to running process AttachCore, // Attach to a core file - AttachRemote // Attach to a remote process + StartRemote // Start and attach to a remote process }; class IDebuggerEngine; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 01d882dba00..d8ac64217ad 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -480,10 +480,10 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess m_attachCoreAction->setText(tr("Attach to Core...")); connect(m_attachCoreAction, SIGNAL(triggered()), this, SLOT(attachCore())); - m_attachRemoteAction = new QAction(this); - m_attachRemoteAction->setText(tr("Attach to Running Remote Application...")); - connect(m_attachRemoteAction, SIGNAL(triggered()), - this, SLOT(attachRemoteApplication())); + m_startRemoteAction = new QAction(this); + m_startRemoteAction->setText(tr("Start and Attach to Remote Application...")); + connect(m_startRemoteAction, SIGNAL(triggered()), + this, SLOT(startRemoteApplication())); Core::ActionContainer *mdebug = @@ -502,12 +502,9 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess Constants::ATTACHCORE, globalcontext); mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE); - #if 1 - // FIXME: not yet functional - cmd = am->registerAction(m_attachRemoteAction, + cmd = am->registerAction(m_startRemoteAction, Constants::ATTACHREMOTE, globalcontext); mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE); - #endif cmd = am->registerAction(m_manager->m_continueAction, ProjectExplorer::Constants::DEBUG, QList() << m_gdbRunningContext); @@ -1090,11 +1087,11 @@ void DebuggerPlugin::attachCore() runControl->start(); } -void DebuggerPlugin::attachRemoteApplication() +void DebuggerPlugin::startRemoteApplication() { QSharedPointer rc = activeRunConfiguration(); if (RunControl *runControl = m_debuggerRunner - ->run(rc, ProjectExplorer::Constants::DEBUGMODE, AttachRemote)) + ->run(rc, ProjectExplorer::Constants::DEBUGMODE, StartRemote)) runControl->start(); } diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index 8990a641917..78d228dc8e3 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -98,9 +98,9 @@ private slots: void showSettingsDialog(); void startExternalApplication(); + void startRemoteApplication(); void attachExternalApplication(); void attachCore(); - void attachRemoteApplication(); private: void readSettings(); @@ -122,9 +122,9 @@ private: QAction *m_toggleLockedAction; QAction *m_startExternalAction; + QAction *m_startRemoteAction; QAction *m_attachExternalAction; QAction *m_attachCoreAction; - QAction *m_attachRemoteAction; }; } // namespace Internal diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 454a71df9ef..db84d268e57 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -535,7 +535,7 @@ void GdbEngine::interruptInferior() return; } - if (q->startMode() == AttachRemote) { + if (q->startMode() == StartRemote) { execCommand(_("-exec-interrupt")); return; } @@ -1313,7 +1313,7 @@ void GdbEngine::exitDebugger() qDebug() << "STATUS ON EXITDEBUGGER: " << q->status()); interruptInferior(); } - if (q->startMode() == AttachExternal || q->startMode() == AttachRemote) + if (q->startMode() == AttachExternal || q->startMode() == StartRemote) execCommand(_("detach")); else execCommand(_("kill")); @@ -1357,7 +1357,7 @@ bool GdbEngine::startDebugger() if (q->startMode() == AttachCore || q->startMode() == AttachExternal) { // nothing to do - } else if (q->startMode() == AttachRemote) { + } else if (q->startMode() == StartRemote) { // nothing to do } else if (q->m_useTerminal) { m_stubProc.stop(); // We leave the console open, so recycle it now. @@ -1495,7 +1495,7 @@ bool GdbEngine::startDebugger() execCommand(_("-file-exec-and-symbols ") + fileName); execCommand(_("target core ") + coreName, CB(handleTargetCore)); qq->breakHandler()->removeAllBreakpoints(); - } else if (q->startMode() == AttachRemote) { + } else if (q->startMode() == StartRemote) { execCommand(_("set architecture %1").arg(q->m_remoteArchitecture)); qq->breakHandler()->setAllPending(); //QFileInfo fi(q->m_executable); diff --git a/src/plugins/debugger/attachremotedialog.ui b/src/plugins/debugger/startremotedialog.ui similarity index 95% rename from src/plugins/debugger/attachremotedialog.ui rename to src/plugins/debugger/startremotedialog.ui index 0326926a31f..5f616cf90b2 100644 --- a/src/plugins/debugger/attachremotedialog.ui +++ b/src/plugins/debugger/startremotedialog.ui @@ -1,7 +1,7 @@ - AttachRemoteDialog - + StartRemoteDialog + 0 From e0de01190f8ccd460d2c7925b1e22cace2708928 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 6 May 2009 14:26:20 +0200 Subject: [PATCH 02/22] Started Console process handling for CDB. Introduced "Suspend" mode for the process stub and corresponding mode enumeration in console process (Windows). --- src/libs/utils/consoleprocess.cpp | 86 +++++++++++++++++++ src/libs/utils/consoleprocess.h | 16 +++- src/libs/utils/consoleprocess_unix.cpp | 43 +++++----- src/libs/utils/consoleprocess_win.cpp | 45 +++++----- src/libs/utils/process_stub_win.c | 19 +++- src/libs/utils/utils.pro | 3 +- src/plugins/debugger/cdb/cdbdebugengine.cpp | 23 +++-- .../debugger/cdb/cdbdebugeventcallback.cpp | 9 +- src/plugins/debugger/cdb/cdbdumperhelper.cpp | 4 +- src/plugins/debugger/gdbengine.cpp | 2 +- 10 files changed, 183 insertions(+), 67 deletions(-) create mode 100644 src/libs/utils/consoleprocess.cpp diff --git a/src/libs/utils/consoleprocess.cpp b/src/libs/utils/consoleprocess.cpp new file mode 100644 index 00000000000..f55233dcfa6 --- /dev/null +++ b/src/libs/utils/consoleprocess.cpp @@ -0,0 +1,86 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** +**************************************************************************/ + +#include "consoleprocess.h" + +namespace Core { +namespace Utils { + +QString ConsoleProcess::modeOption(Mode m) +{ + switch (m) { + case Debug: + return QLatin1String("debug"); + case Suspend: + return QLatin1String("suspend"); + case Run: + break; + } + return QLatin1String("run"); +} + +QString ConsoleProcess::msgCommChannelFailed(const QString &error) +{ + return tr("Cannot set up communication channel: %1").arg(error); +} + +QString ConsoleProcess::msgPromptToClose() +{ + //! Showed in a terminal which might have + //! a different character set on Windows. + return tr("Press to close this window..."); +} + +QString ConsoleProcess::msgCannotCreateTempFile(const QString &why) +{ + return tr("Cannot create temporary file: %1").arg(why); +} + +QString ConsoleProcess::msgCannotCreateTempDir(const QString & dir, const QString &why) +{ + return tr("Cannot create temporary directory '%1': %2").arg(dir, why); +} + +QString ConsoleProcess::msgUnexpectedOutput() +{ + return tr("Unexpected output from helper program."); +} + +QString ConsoleProcess::msgCannotChangeToWorkDir(const QString & dir, const QString &why) +{ + return tr("Cannot change to working directory '%1': %2").arg(dir, why); +} + +QString ConsoleProcess::msgCannotExecute(const QString & p, const QString &why) +{ + return tr("Cannot execute '%1': %2").arg(p, why); +} + +} +} diff --git a/src/libs/utils/consoleprocess.h b/src/libs/utils/consoleprocess.h index 6da57e375b9..4604a1f6752 100644 --- a/src/libs/utils/consoleprocess.h +++ b/src/libs/utils/consoleprocess.h @@ -59,14 +59,15 @@ class QWORKBENCH_UTILS_EXPORT ConsoleProcess : public QObject, public AbstractPr Q_OBJECT public: + enum Mode { Run, Debug, Suspend }; ConsoleProcess(QObject *parent = 0); ~ConsoleProcess(); bool start(const QString &program, const QStringList &args); void stop(); - void setDebug(bool on) { m_debug = on; } - bool isDebug() const { return m_debug; } + void setMode(Mode m) { m_mode = m; } + Mode mode() const { return m_mode; } bool isRunning() const; // This reflects the state of the console+stub qint64 applicationPID() const { return m_appPid; } @@ -99,6 +100,15 @@ private slots: #endif private: + static QString modeOption(Mode m); + static QString msgCommChannelFailed(const QString &error); + static QString msgPromptToClose(); + static QString msgCannotCreateTempFile(const QString &why); + static QString msgCannotCreateTempDir(const QString & dir, const QString &why); + static QString msgUnexpectedOutput(); + static QString msgCannotChangeToWorkDir(const QString & dir, const QString &why); + static QString msgCannotExecute(const QString & p, const QString &why); + QString stubServerListen(); void stubServerShutdown(); #ifdef Q_OS_WIN @@ -106,7 +116,7 @@ private: void cleanupInferior(); #endif - bool m_debug; + Mode m_mode; qint64 m_appPid; int m_appCode; QString m_executable; diff --git a/src/libs/utils/consoleprocess_unix.cpp b/src/libs/utils/consoleprocess_unix.cpp index c1183734d09..226dc18ca3a 100644 --- a/src/libs/utils/consoleprocess_unix.cpp +++ b/src/libs/utils/consoleprocess_unix.cpp @@ -44,14 +44,13 @@ using namespace Core::Utils; -ConsoleProcess::ConsoleProcess(QObject *parent) - : QObject(parent) +ConsoleProcess::ConsoleProcess(QObject *parent) : + QObject(parent), + m_mode(Run), + m_appPid(0), + m_stubSocket(0), + m_settings(0) { - m_debug = false; - m_appPid = 0; - m_stubSocket = 0; - m_settings = 0; - connect(&m_stubServer, SIGNAL(newConnection()), SLOT(stubConnectionAvailable())); m_process.setProcessChannelMode(QProcess::ForwardedChannels); @@ -69,9 +68,9 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) if (isRunning()) return false; - QString err = stubServerListen(); + const QString err = stubServerListen(); if (!err.isEmpty()) { - emit processError(tr("Cannot set up communication channel: %1").arg(err)); + emit processError(msgCommChannelFailed(err)); return false; } @@ -79,7 +78,7 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) m_tempFile = new QTemporaryFile(); if (!m_tempFile->open()) { stubServerShutdown(); - emit processError(tr("Cannot create temporary file: %1").arg(m_tempFile->errorString())); + emit processError(msgCannotCreateTempFile(m_tempFile->errorString())); delete m_tempFile; m_tempFile = 0; return false; @@ -94,13 +93,13 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) QStringList xtermArgs = terminalEmulator(m_settings).split(QLatin1Char(' ')); // FIXME: quoting xtermArgs #ifdef Q_OS_MAC - << (QCoreApplication::applicationDirPath() + "/../Resources/qtcreator_process_stub") + << (QCoreApplication::applicationDirPath() + QLatin1String("/../Resources/qtcreator_process_stub")) #else - << (QCoreApplication::applicationDirPath() + "/qtcreator_process_stub") + << (QCoreApplication::applicationDirPath() + QLatin1String("/qtcreator_process_stub")) #endif - << (m_debug ? "debug" : "exec") + << modeOption(m_mode) << m_stubServer.fullServerName() - << tr("Press to close this window...") + << msgPromptToClose() << workingDirectory() << (m_tempFile ? m_tempFile->fileName() : 0) << program << args; @@ -145,7 +144,7 @@ QString ConsoleProcess::stubServerListen() { QTemporaryFile tf; if (!tf.open()) - return tr("Cannot create temporary file: %1").arg(tf.errorString()); + return msgCannotCreateTempFile(tf.errorString()); stubFifoDir = QFile::encodeName(tf.fileName()); } // By now the temp file was deleted again @@ -153,9 +152,9 @@ QString ConsoleProcess::stubServerListen() if (!::mkdir(m_stubServerDir.constData(), 0700)) break; if (errno != EEXIST) - return tr("Cannot create temporary directory '%1': %2").arg(stubFifoDir, strerror(errno)); + return msgCannotCreateTempDir(stubFifoDir, QString::fromLocal8Bit(strerror(errno))); } - QString stubServer = stubFifoDir + "/stub-socket"; + const QString stubServer = stubFifoDir + "/stub-socket"; if (!m_stubServer.listen(stubServer)) { ::rmdir(m_stubServerDir.constData()); return tr("Cannot create socket '%1': %2").arg(stubServer, m_stubServer.errorString()); @@ -190,11 +189,9 @@ void ConsoleProcess::readStubOutput() QByteArray out = m_stubSocket->readLine(); out.chop(1); // \n if (out.startsWith("err:chdir ")) { - emit processError(tr("Cannot change to working directory '%1': %2") - .arg(workingDirectory(), errorMsg(out.mid(10).toInt()))); + emit processError(msgCannotChangeToWorkDir(workingDirectory(), errorMsg(out.mid(10).toInt()))); } else if (out.startsWith("err:exec ")) { - emit processError(tr("Cannot execute '%1': %2") - .arg(m_executable, errorMsg(out.mid(9).toInt()))); + emit processError(msgCannotExecute(m_executable, errorMsg(out.mid(9).toInt()))); } else if (out.startsWith("pid ")) { // Will not need it any more delete m_tempFile; @@ -213,7 +210,7 @@ void ConsoleProcess::readStubOutput() m_appPid = 0; emit processStopped(); } else { - emit processError(tr("Unexpected output from helper program.")); + emit processError(msgUnexpectedOutput()); m_process.terminate(); break; } @@ -250,7 +247,7 @@ QString ConsoleProcess::defaultTerminalEmulator() QString ConsoleProcess::terminalEmulator(const QSettings *settings) { - QString dflt = defaultTerminalEmulator() + QLatin1String(" -e"); + const QString dflt = defaultTerminalEmulator() + QLatin1String(" -e"); if (!settings) return dflt; return settings->value(QLatin1String("General/TerminalEmulator"), dflt).toString(); diff --git a/src/libs/utils/consoleprocess_win.cpp b/src/libs/utils/consoleprocess_win.cpp index bc4b9a31e91..71b589061ad 100644 --- a/src/libs/utils/consoleprocess_win.cpp +++ b/src/libs/utils/consoleprocess_win.cpp @@ -42,18 +42,17 @@ using namespace Core::Utils; -ConsoleProcess::ConsoleProcess(QObject *parent) - : QObject(parent) +ConsoleProcess::ConsoleProcess(QObject *parent) : + QObject(parent), + m_mode(Run), + m_appPid(0), + m_pid(0), + m_hInferior(NULL), + m_tempFile(0), + m_stubSocket(0), + processFinishedNotifier(0), + inferiorFinishedNotifier(0) { - m_debug = false; - m_appPid = 0; - m_pid = 0; - m_hInferior = NULL; - m_tempFile = 0; - m_stubSocket = 0; - processFinishedNotifier = 0; - inferiorFinishedNotifier = 0; - connect(&m_stubServer, SIGNAL(newConnection()), SLOT(stubConnectionAvailable())); } @@ -67,9 +66,9 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) if (isRunning()) return false; - QString err = stubServerListen(); + const QString err = stubServerListen(); if (!err.isEmpty()) { - emit processError(tr("Cannot set up communication channel: %1").arg(err)); + emit processError(msgCommChannelFailed(err)); return false; } @@ -77,7 +76,7 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) m_tempFile = new QTemporaryFile(); if (!m_tempFile->open()) { stubServerShutdown(); - emit processError(tr("Cannot create temporary file: %1").arg(m_tempFile->errorString())); + emit processError(msgCannotCreateTempFile(m_tempFile->errorString())); delete m_tempFile; m_tempFile = 0; return false; @@ -102,15 +101,15 @@ bool ConsoleProcess::start(const QString &program, const QStringList &args) workDir.append('\\'); QStringList stubArgs; - stubArgs << (m_debug ? "debug" : "exec") + stubArgs << modeOption(m_mode) << m_stubServer.fullServerName() << workDir << (m_tempFile ? m_tempFile->fileName() : 0) << createWinCommandline(program, args) - << tr("Press to close this window..."); + << msgPromptToClose(); - QString cmdLine = createWinCommandline( - QCoreApplication::applicationDirPath() + "/qtcreator_process_stub.exe", stubArgs); + const QString cmdLine = createWinCommandline( + QCoreApplication::applicationDirPath() + QLatin1String("/qtcreator_process_stub.exe"), stubArgs); bool success = CreateProcessW(0, (WCHAR*)cmdLine.utf16(), 0, 0, FALSE, CREATE_NEW_CONSOLE, @@ -180,13 +179,11 @@ void ConsoleProcess::readStubOutput() QByteArray out = m_stubSocket->readLine(); out.chop(2); // \r\n if (out.startsWith("err:chdir ")) { - emit processError(tr("Cannot change to working directory '%1': %2") - .arg(workingDirectory(), winErrorMessage(out.mid(10).toInt()))); + emit processError(msgCannotChangeToWorkDir(workingDirectory(), winErrorMessage(out.mid(10).toInt()))); } else if (out.startsWith("err:exec ")) { - emit processError(tr("Cannot execute '%1': %2") - .arg(m_executable, winErrorMessage(out.mid(9).toInt()))); + emit processError(msgCannotExecute(m_executable, winErrorMessage(out.mid(9).toInt()))); } else if (out.startsWith("pid ")) { - // Will not need it any more + // Wil not need it any more delete m_tempFile; m_tempFile = 0; @@ -204,7 +201,7 @@ void ConsoleProcess::readStubOutput() connect(inferiorFinishedNotifier, SIGNAL(activated(HANDLE)), SLOT(inferiorExited())); emit processStarted(); } else { - emit processError(tr("Unexpected output from helper program.")); + emit processError(msgUnexpectedOutput()); TerminateProcess(m_pid->hProcess, (unsigned)-1); break; } diff --git a/src/libs/utils/process_stub_win.c b/src/libs/utils/process_stub_win.c index 961f1d5ae08..ed64260ab80 100644 --- a/src/libs/utils/process_stub_win.c +++ b/src/libs/utils/process_stub_win.c @@ -39,6 +39,8 @@ static FILE *qtcFd; static wchar_t *sleepMsg; +enum RunMode { Run, Debug, Suspend }; + /* Print some "press enter" message, wait for that, exit. */ static void doExit(int code) { @@ -112,6 +114,7 @@ int main() STARTUPINFOW si; PROCESS_INFORMATION pi; DEBUG_EVENT dbev; + enum RunMode mode = Run; argv = CommandLineToArgvW(GetCommandLine(), &argc); @@ -158,8 +161,20 @@ int main() si.cb = sizeof(si); creationFlags = CREATE_UNICODE_ENVIRONMENT; - if (!wcscmp(argv[ArgAction], L"debug")) + if (!wcscmp(argv[ArgAction], L"debug")) { + mode = Debug; + } else if (!wcscmp(argv[ArgAction], L"suspend")) { + mode = Suspend; + } + + switch (mode) { + case Debug: creationFlags |= DEBUG_ONLY_THIS_PROCESS; + break; + case Suspend: + creationFlags |= CREATE_SUSPENDED; + break; + } if (!CreateProcessW(0, argv[ArgCmdLine], 0, 0, FALSE, creationFlags, env, 0, &si, &pi)) { /* Only expected error: no such file or direcotry, i.e. executable not found */ sendMsg("err:exec %d\n", GetLastError()); @@ -172,7 +187,7 @@ int main() So instead we start a debugged process, eat all the initial debug events, suspend the process and detach from it. If gdb tries to attach *now*, everything goes smoothly. Yay. */ - if (creationFlags & DEBUG_ONLY_THIS_PROCESS) { + if (mode == Debug) { do { if (!WaitForDebugEvent (&dbev, INFINITE)) systemError("Cannot fetch debug event, error %d\n"); diff --git a/src/libs/utils/utils.pro b/src/libs/utils/utils.pro index ebce693dc4b..6502e40d035 100644 --- a/src/libs/utils/utils.pro +++ b/src/libs/utils/utils.pro @@ -26,7 +26,8 @@ SOURCES += \ savedaction.cpp \ submiteditorwidget.cpp \ synchronousprocess.cpp \ - submitfieldwidget.cpp + submitfieldwidget.cpp \ + consoleprocess.cpp win32 { SOURCES += abstractprocess_win.cpp \ diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp index 72a60595ca1..39c52525b64 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.cpp +++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp @@ -392,7 +392,7 @@ CdbDebugEngine::CdbDebugEngine(DebuggerManager *parent, const QSharedPointerm_consoleStubProc.setDebug(true); + m_d->m_consoleStubProc.setMode(Core::Utils::ConsoleProcess::Suspend); connect(&m_d->m_consoleStubProc, SIGNAL(processError(QString)), this, SLOT(slotConsoleStubError(QString))); connect(&m_d->m_consoleStubProc, SIGNAL(processStarted()), this, SLOT(slotConsoleStubStarted())); connect(&m_d->m_consoleStubProc, SIGNAL(wrapperStopped()), this, SLOT(slotConsoleStubTerminated())); @@ -469,10 +469,12 @@ bool CdbDebugEngine::startDebugger() m_d->m_debuggerManager->showStatusMessage("Starting Debugger", -1); QString errorMessage; bool rc = false; + bool needWatchTimer = false; m_d->clearForRun(); switch (mode) { case AttachExternal: rc = startAttachDebugger(m_d->m_debuggerManager->m_attachedPID, &errorMessage); + needWatchTimer = true; break; case StartInternal: case StartExternal: @@ -484,7 +486,9 @@ bool CdbDebugEngine::startDebugger() rc = m_d->m_consoleStubProc.start(m_d->m_debuggerManager->m_executable, m_d->m_debuggerManager->m_processArgs); if (!rc) errorMessage = tr("The console stub process was unable to start '%1'.").arg(m_d->m_debuggerManager->m_executable); + // continues in slotConsoleStubStarted()... } else { + needWatchTimer = true; rc = startDebuggerWithExecutable(mode, &errorMessage); } break; @@ -494,7 +498,8 @@ bool CdbDebugEngine::startDebugger() } if (rc) { m_d->m_debuggerManager->showStatusMessage(tr("Debugger Running"), -1); - startWatchTimer(); + if (needWatchTimer) + startWatchTimer(); } else { qWarning("%s\n", qPrintable(errorMessage)); } @@ -503,12 +508,12 @@ bool CdbDebugEngine::startDebugger() bool CdbDebugEngine::startAttachDebugger(qint64 pid, QString *errorMessage) { - // Need to aatrach invasively, otherwise, no notification signals + // Need to attrach invasively, otherwise, no notification signals // for for CreateProcess/ExitProcess occur. - const HRESULT hr = m_d->m_cif.debugClient->AttachProcess(NULL, pid, - DEBUG_ATTACH_INVASIVE_RESUME_PROCESS); + const ULONG flags = DEBUG_ATTACH_INVASIVE_RESUME_PROCESS; + const HRESULT hr = m_d->m_cif.debugClient->AttachProcess(NULL, pid, flags); if (debugCDB) - qDebug() << "Attaching to " << pid << " returns " << hr; + qDebug() << "Attaching to " << pid << " returns " << hr << executionStatusString(m_d->m_cif.debugControl); if (FAILED(hr)) { *errorMessage = tr("AttachProcess failed for pid %1: %2").arg(pid).arg(msgDebugEngineComResult(hr)); return false; @@ -560,7 +565,6 @@ bool CdbDebugEngine::startDebuggerWithExecutable(DebuggerStartMode sm, QString * m_d->m_mode = sm; } m_d->m_debuggerManagerAccess->notifyInferiorRunning(); - return true; } @@ -1318,7 +1322,9 @@ void CdbDebugEngine::slotConsoleStubStarted() QString errorMessage; if (startAttachDebugger(appPid, &errorMessage)) { m_d->m_debuggerManager->m_attachedPID = appPid; + startWatchTimer(); m_d->m_debuggerManagerAccess->notifyInferiorPidChanged(appPid); + m_d->m_debuggerManagerAccess->notifyInferiorRunning(); } else { QMessageBox::critical(m_d->m_debuggerManager->mainWindow(), tr("Debugger Error"), errorMessage); } @@ -1343,7 +1349,8 @@ void CdbDebugEnginePrivate::notifyCrashed() void CdbDebugEnginePrivate::handleDebugEvent() { if (debugCDB) - qDebug() << Q_FUNC_INFO << m_hDebuggeeProcess; + qDebug() << Q_FUNC_INFO << '\n' << m_hDebuggeeProcess << m_breakEventMode + << executionStatusString(m_cif.debugControl); // restore mode and do special handling const HandleBreakEventMode mode = m_breakEventMode; diff --git a/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp b/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp index 42e48b3dc91..eefb0bd06c9 100644 --- a/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp +++ b/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp @@ -34,7 +34,7 @@ #include "breakhandler.h" #include "cdbstacktracecontext.h" -enum { cppExceptionCode = 0xe06d7363 }; +enum { cppExceptionCode = 0xe06d7363, startupCompleteTrap = 0x406d1388 }; #include #include @@ -245,6 +245,9 @@ void formatException(const EXCEPTION_RECORD64 *e, QTextStream &str) case cppExceptionCode: str << "C++ exception"; break; + case startupCompleteTrap: + str << "Startup complete"; + break; case EXCEPTION_ACCESS_VIOLATION: { const bool writeOperation = e->ExceptionInformation[0]; str << (writeOperation ? "write" : "read") @@ -341,7 +344,7 @@ static bool isFatalException(LONG code) switch (code) { case EXCEPTION_BREAKPOINT: case EXCEPTION_SINGLE_STEP: - case 0x406d1388: // Mysterious exception at start of application + case startupCompleteTrap: // Mysterious exception at start of application return false; default: break; @@ -362,7 +365,7 @@ STDMETHODIMP CdbDebugEventCallback::Exception( } const bool fatal = isFatalException(Exception->ExceptionCode); if (debugCDB) - qDebug() << Q_FUNC_INFO << '\n' << fatal << msg; + qDebug() << Q_FUNC_INFO << "\nex=" << Exception->ExceptionCode << " fatal=" << fatal << msg; m_pEngine->m_d->m_debuggerManagerAccess->showApplicationOutput(msg); if (fatal) m_pEngine->m_d->notifyCrashed(); diff --git a/src/plugins/debugger/cdb/cdbdumperhelper.cpp b/src/plugins/debugger/cdb/cdbdumperhelper.cpp index b76398254d0..c6d2337d0de 100644 --- a/src/plugins/debugger/cdb/cdbdumperhelper.cpp +++ b/src/plugins/debugger/cdb/cdbdumperhelper.cpp @@ -352,7 +352,7 @@ bool CdbDumperHelper::ensureInitialized(QString *errorMessage) return false; case CallLoadNoQtApp: m_access->showDebuggerOutput(m_messagePrefix, QCoreApplication::translate("CdbDumperHelper", "The debuggee does not appear to be Qt application.")); - disable(); + m_state = Disabled; // No message here return true; } break; @@ -367,7 +367,7 @@ bool CdbDumperHelper::ensureInitialized(QString *errorMessage) m_access->showDebuggerOutput(m_messagePrefix, m_helper.toString()); m_state = Initialized; } else { - disable(); + m_state = Disabled; // No message here *errorMessage = QCoreApplication::translate("CdbDumperHelper", "The custom dumper library could not be initialized: %1").arg(*errorMessage); m_access->showDebuggerOutput(m_messagePrefix, *errorMessage); m_access->showQtDumperLibraryWarning(*errorMessage); diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index db84d268e57..f80b76b5f19 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -117,7 +117,7 @@ GdbEngine::GdbEngine(DebuggerManager *parent) { q = parent; qq = parent->engineInterface(); - m_stubProc.setDebug(true); + m_stubProc.setMode(Core::Utils::ConsoleProcess::Debug); initializeVariables(); initializeConnections(); } From 591c186371dae09d129dd0a89976153e79b347a5 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 6 May 2009 15:05:07 +0200 Subject: [PATCH 03/22] Made SharedLibraryInjector compile with MinGW. --- .../debugger/win/sharedlibraryinjector.cpp | 34 +++++++++++-------- src/plugins/debugger/win/win.pri | 7 ++-- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/plugins/debugger/win/sharedlibraryinjector.cpp b/src/plugins/debugger/win/sharedlibraryinjector.cpp index 628263d3e15..1c5bf8d96ad 100644 --- a/src/plugins/debugger/win/sharedlibraryinjector.cpp +++ b/src/plugins/debugger/win/sharedlibraryinjector.cpp @@ -56,6 +56,12 @@ #include +#ifdef __GNUC__ // MinGW does not have a complete windows.h + +typedef DWORD (__stdcall *PTHREAD_START_ROUTINE) (LPVOID lpThreadParameter); + +#endif + enum { debug = 0 }; static QString msgFuncFailed(const char *f, unsigned long error) @@ -68,7 +74,7 @@ template inline bool resolveSymbol(const char *libraryName, HMODULE libraryHandle, const char *symbolName, SymbolType *s, QString *errorMessage) { *s = 0; - void *vs = ::GetProcAddress(libraryHandle, symbolName); + FARPROC WINAPI vs = ::GetProcAddress(libraryHandle, symbolName); if (vs == 0) { *errorMessage = QString::fromLatin1("Unable to resolve '%2' in '%1'.").arg(QString::fromAscii(symbolName), QString::fromAscii(libraryName)); return false; @@ -158,29 +164,29 @@ bool SharedLibraryInjector::hasLoaded(const QString &modulePath) QString SharedLibraryInjector::findModule(const QString &moduleName) { - const TCHAR *moduleNameC = moduleName.utf16(); + const TCHAR *moduleNameC = reinterpret_cast(moduleName.utf16()); if (GetFileAttributesW(moduleNameC) != INVALID_FILE_ATTRIBUTES) return moduleName; TCHAR testpathC[MAX_PATH]; // Check application path first GetModuleFileNameW(NULL, testpathC, MAX_PATH); - QString testPath = QString::fromUtf16(testpathC); + QString testPath = QString::fromUtf16(reinterpret_cast(testpathC)); const int lastSlash = testPath.lastIndexOf(QLatin1Char('\\')); if (lastSlash != -1) testPath.truncate(lastSlash + 1); testPath += moduleName; - if (GetFileAttributesW(testPath.utf16()) != INVALID_FILE_ATTRIBUTES) + if (GetFileAttributesW(reinterpret_cast(testPath.utf16())) != INVALID_FILE_ATTRIBUTES) return testPath; // Path Search - if (SearchPathW(NULL, moduleName.utf16(), NULL, sizeof(testpathC)/2, testpathC, NULL)) - return QString::fromUtf16(testpathC); + if (SearchPathW(NULL, reinterpret_cast(moduleName.utf16()), NULL, sizeof(testpathC)/2, testpathC, NULL)) + return QString::fromUtf16(reinterpret_cast(testpathC)); // Last chance, if the module has already been loaded in this process, then use that path - const HMODULE loadedModule = GetModuleHandleW(moduleName.utf16()); + const HMODULE loadedModule = GetModuleHandleW(reinterpret_cast(moduleName.utf16())); if (loadedModule) { GetModuleFileNameW(loadedModule, testpathC, sizeof(testpathC)); if (GetFileAttributes(testpathC) != INVALID_FILE_ATTRIBUTES) - return QString::fromUtf16(testpathC); + return QString::fromUtf16(reinterpret_cast(testpathC)); } return QString(); } @@ -188,13 +194,13 @@ QString SharedLibraryInjector::findModule(const QString &moduleName) unsigned long SharedLibraryInjector::getModuleEntryPoint(const QString &moduleName) { // If file doesn't exist, just treat it like we cannot figure out the entry point - if (moduleName.isEmpty() || GetFileAttributesW(moduleName.utf16()) == INVALID_FILE_ATTRIBUTES) + if (moduleName.isEmpty() || GetFileAttributesW(reinterpret_cast(moduleName.utf16())) == INVALID_FILE_ATTRIBUTES) return 0; // Read the first 1K of data from the file unsigned char peData[1024]; unsigned long peDataSize = 0; - const HANDLE hFile = CreateFileW(moduleName.utf16(), FILE_READ_DATA, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + const HANDLE hFile = CreateFileW(reinterpret_cast(moduleName.utf16()), FILE_READ_DATA, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hFile == INVALID_HANDLE_VALUE || !ReadFile(hFile, peData, sizeof(peData), &peDataSize, NULL)) return 0; @@ -236,7 +242,7 @@ bool SharedLibraryInjector::escalatePrivileges(QString *errorMessage) Debug_Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // set to enable privilege Debug_Privileges.PrivilegeCount = 1; // working with only 1 - if (!OpenProcessToken (GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { + if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { *errorMessage = msgFuncFailed("OpenProcessToken", GetLastError()); break; } @@ -289,8 +295,8 @@ bool SharedLibraryInjector::doStubInjection(unsigned long pid, if (!escalatePrivileges(errorMessage)) return false; - -#if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__)) +// MinGW lacks OpenThread() and the advapi.lib as of 6.5.2009 +#if (defined(WIN64) || defined(_WIN64) || defined(__WIN64__)) || defined(__GNUC__) *errorMessage = QLatin1String("Not implemented for this architecture."); return false; #else @@ -462,7 +468,7 @@ HMODULE SharedLibraryInjector::findModuleHandle(const QString &modulePath, QStri for (unsigned i = 0; i < count; i++) { TCHAR szModName[MAX_PATH]; if (m_pfnGetModuleFileNameExW(hProcess, hMods[i], szModName, sizeof(szModName))) { - if (QString::fromUtf16(szModName) == modulePath) { + if (QString::fromUtf16(reinterpret_cast(szModName)) == modulePath) { ::FreeLibrary(m_hModPSAPI); ::CloseHandle(hProcess); return hMods[i]; diff --git a/src/plugins/debugger/win/win.pri b/src/plugins/debugger/win/win.pri index a0b1ef45cbb..4f0fe796c36 100644 --- a/src/plugins/debugger/win/win.pri +++ b/src/plugins/debugger/win/win.pri @@ -7,5 +7,8 @@ HEADERS += $$PWD/peutils.h \ $$PWD/dbgwinutils.h \ $$PWD/sharedlibraryinjector.h -# For the Privilege manipulation functions in sharedlibraryinjector.cpp -LIBS += advapi32.lib +contains(QMAKE_CXX, cl) { +# For the Privilege manipulation functions in sharedlibraryinjector.cpp. +# Not required for MinGW. + LIBS += advapi32.lib +} From 3d84da2b4dce03139b7c52e9b9a73144e34898f0 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 6 May 2009 16:11:42 +0200 Subject: [PATCH 04/22] debugger: initial work to start a remote gdbserver --- src/plugins/debugger/debuggerdialogs.cpp | 11 +++ src/plugins/debugger/debuggerdialogs.h | 2 + src/plugins/debugger/debuggermanager.cpp | 3 + src/plugins/debugger/debuggermanager.h | 2 + src/plugins/debugger/gdbengine.cpp | 103 ++++++++++++++++++---- src/plugins/debugger/gdbengine.h | 4 + src/plugins/debugger/startremotedialog.ui | 10 +++ tests/manual/fakevim/runremotely.sh | 15 ++++ 8 files changed, 132 insertions(+), 18 deletions(-) create mode 100755 tests/manual/fakevim/runremotely.sh diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 79bb783f296..f30ee2c4172 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -312,6 +312,8 @@ StartRemoteDialog::StartRemoteDialog(QWidget *parent) { m_ui->setupUi(this); m_ui->buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); + m_ui->serverStartScript->setExpectedKind(Core::Utils::PathChooser::File); + m_ui->serverStartScript->setPromptDialogTitle(tr("Select Executable")); connect(m_ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(m_ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); @@ -354,6 +356,15 @@ QString StartRemoteDialog::remoteArchitecture() const return m_ui->architectureComboBox->itemText(index); } +void StartRemoteDialog::setServerStartScript(const QString &scriptName) +{ + m_ui->serverStartScript->setPath(scriptName); +} + +QString StartRemoteDialog::serverStartScript() const +{ + return m_ui->serverStartScript->path(); +} /////////////////////////////////////////////////////////////////////// // diff --git a/src/plugins/debugger/debuggerdialogs.h b/src/plugins/debugger/debuggerdialogs.h index 04f1e65ceda..403e094d4cc 100644 --- a/src/plugins/debugger/debuggerdialogs.h +++ b/src/plugins/debugger/debuggerdialogs.h @@ -114,6 +114,8 @@ public: void setRemoteArchitectures(const QStringList &arches); QString remoteChannel() const; QString remoteArchitecture() const; + void setServerStartScript(const QString &scriptName); + QString serverStartScript() const; private: Ui::StartRemoteDialog *m_ui; diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 9942b002886..cbcd0f76f3e 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -936,14 +936,17 @@ void DebuggerManager::startNewDebugger(DebuggerRunControl *runControl) dlg.setRemoteArchitectures(arches); dlg.setRemoteChannel(configValue(_("LastRemoteChannel")).toString()); dlg.setRemoteArchitecture(configValue(_("LastRemoteArchtecture")).toString()); + dlg.setServerStartScript(configValue(_("LastServerStartScript")).toString()); if (dlg.exec() != QDialog::Accepted) { runControl->debuggingFinished(); return; } setConfigValue(_("LastRemoteChannel"), dlg.remoteChannel()); setConfigValue(_("LastRemoteArchitecture"), dlg.remoteArchitecture()); + setConfigValue(_("LastServerStartScript"), dlg.serverStartScript()); m_remoteChannel = dlg.remoteChannel(); m_remoteArchitecture = dlg.remoteArchitecture(); + m_serverStartScript = dlg.serverStartScript(); break; } } diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 66336caace8..78d73c2db2b 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -359,8 +359,10 @@ public: QString m_dumperLib; int m_attachedPID; bool m_useTerminal; + // for remote debugging QString m_remoteChannel; QString m_remoteArchitecture; + QString m_serverStartScript; private: void init(); diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index f80b76b5f19..94809204e91 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -131,22 +131,28 @@ GdbEngine::~GdbEngine() void GdbEngine::initializeConnections() { // Gdb Process interaction - connect(&m_gdbProc, SIGNAL(error(QProcess::ProcessError)), this, - SLOT(gdbProcError(QProcess::ProcessError))); - connect(&m_gdbProc, SIGNAL(readyReadStandardOutput()), this, - SLOT(readGdbStandardOutput())); - connect(&m_gdbProc, SIGNAL(readyReadStandardError()), this, - SLOT(readGdbStandardError())); - connect(&m_gdbProc, SIGNAL(finished(int, QProcess::ExitStatus)), q, - SLOT(exitDebugger())); + connect(&m_gdbProc, SIGNAL(error(QProcess::ProcessError)), + this, SLOT(gdbProcError(QProcess::ProcessError))); + connect(&m_gdbProc, SIGNAL(readyReadStandardOutput()), + this, SLOT(readGdbStandardOutput())); + connect(&m_gdbProc, SIGNAL(readyReadStandardError()), + this, SLOT(readGdbStandardError())); + connect(&m_gdbProc, SIGNAL(finished(int, QProcess::ExitStatus)), + q, SLOT(exitDebugger())); - connect(&m_stubProc, SIGNAL(processError(QString)), SLOT(stubError(QString))); - connect(&m_stubProc, SIGNAL(processStarted()), SLOT(stubStarted())); - connect(&m_stubProc, SIGNAL(wrapperStopped()), q, SLOT(exitDebugger())); + connect(&m_stubProc, SIGNAL(processError(QString)), + this, SLOT(stubError(QString))); + connect(&m_stubProc, SIGNAL(processStarted()), + this, SLOT(stubStarted())); + connect(&m_stubProc, SIGNAL(wrapperStopped()), + q, SLOT(exitDebugger())); + + connect(&m_uploadProc, SIGNAL(error(QProcess::ProcessError)), + this, SLOT(uploadProcError(QProcess::ProcessError))); // Output connect(&m_outputCollector, SIGNAL(byteDelivery(QByteArray)), - SLOT(readDebugeeOutput(QByteArray))); + this, SLOT(readDebugeeOutput(QByteArray))); connect(this, SIGNAL(gdbOutputAvailable(QString,QString)), q, SLOT(showDebuggerOutput(QString,QString)), @@ -225,6 +231,43 @@ void GdbEngine::gdbProcError(QProcess::ProcessError error) q->exitDebugger(); } +void GdbEngine::uploadProcError(QProcess::ProcessError error) +{ + QString msg; + switch (error) { + case QProcess::FailedToStart: + msg = tr("The upload process failed to start. Either the " + "invoked script '%1' is missing, or you may have insufficient " + "permissions to invoke the program.") + .arg(theDebuggerStringSetting(GdbLocation)); + break; + case QProcess::Crashed: + msg = tr("The upload process crashed some time after starting " + "successfully."); + break; + case QProcess::Timedout: + msg = tr("The last waitFor...() function timed out. " + "The state of QProcess is unchanged, and you can try calling " + "waitFor...() again."); + break; + case QProcess::WriteError: + msg = tr("An error occurred when attempting to write " + "to the upload process. For example, the process may not be running, " + "or it may have closed its input channel."); + break; + case QProcess::ReadError: + msg = tr("An error occurred when attempting to read from " + "the upload process. For example, the process may not be running."); + break; + default: + msg = tr("An unknown error in the upload process occurred. " + "This is the default return value of error()."); + } + + q->showStatusMessage(msg); + QMessageBox::critical(q->mainWindow(), tr("Error"), msg); +} + #if 0 static void dump(const char *first, const char *middle, const QString & to) { @@ -907,6 +950,7 @@ void GdbEngine::handleAqcuiredInferior() #endif if (theDebuggerBoolSetting(ListSourceFiles)) reloadSourceFiles(); + tryLoadDebuggingHelpers(); #ifndef Q_OS_MAC @@ -1358,7 +1402,18 @@ bool GdbEngine::startDebugger() if (q->startMode() == AttachCore || q->startMode() == AttachExternal) { // nothing to do } else if (q->startMode() == StartRemote) { - // nothing to do + // Start the remote server + if (q->m_serverStartScript.isEmpty()) { + q->showStatusMessage(_("No server start script given. " + "Assuming server runs already.")); + } else { + if (!q->m_workingDir.isEmpty()) + m_uploadProc.setWorkingDirectory(q->m_workingDir); + if (!q->m_environment.isEmpty()) + m_uploadProc.setEnvironment(q->m_environment); + m_uploadProc.start(_("/bin/sh ") + q->m_serverStartScript); + m_uploadProc.waitForStarted(); + } } else if (q->m_useTerminal) { m_stubProc.stop(); // We leave the console open, so recycle it now. @@ -2795,7 +2850,7 @@ bool GdbEngine::hasDebuggingHelperForType(const QString &type) const if (!theDebuggerBoolSetting(UseDebuggingHelpers)) return false; - if (q->startMode() == AttachCore) { + if (!startModeAllowsDumpers()) { // "call" is not possible in gdb when looking at core files return type == __("QString") || type.endsWith(__("::QString")) || type == __("QStringList") || type.endsWith(__("::QStringList")); @@ -2834,7 +2889,7 @@ void GdbEngine::runDirectDebuggingHelper(const WatchData &data, bool dumpChildre void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren) { - if (q->startMode() == AttachCore) { + if (!startModeAllowsDumpers()) { runDirectDebuggingHelper(data0, dumpChildren); return; } @@ -3832,6 +3887,9 @@ void GdbEngine::tryLoadDebuggingHelpers() if (m_debuggingHelperState != DebuggingHelperUninitialized) return; + if (!startModeAllowsDumpers()) + return; + PENDING_DEBUG("TRY LOAD CUSTOM DUMPERS"); m_debuggingHelperState = DebuggingHelperUnavailable; if (!qq->qtDumperLibraryEnabled()) @@ -3881,9 +3939,18 @@ void GdbEngine::tryLoadDebuggingHelpers() void GdbEngine::recheckDebuggingHelperAvailability() { - // retreive list of dumpable classes - execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)")); - execCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper)); + if (startModeAllowsDumpers()) { + // retreive list of dumpable classes + execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)")); + execCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper)); + } +} + +bool GdbEngine::startModeAllowsDumpers() const +{ + return q->startMode() == StartInternal + || q->startMode() == StartExternal + || q->startMode() == AttachExternal; } IDebuggerEngine *createGdbEngine(DebuggerManager *parent, QList *opts) diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h index 87523ae703b..a3767ce45c4 100644 --- a/src/plugins/debugger/gdbengine.h +++ b/src/plugins/debugger/gdbengine.h @@ -191,6 +191,7 @@ private slots: void readDebugeeOutput(const QByteArray &data); void stubStarted(); void stubError(const QString &msg); + void uploadProcError(QProcess::ProcessError error); private: int terminationIndex(const QByteArray &buffer, int &length); @@ -226,6 +227,7 @@ private: QByteArray m_inbuffer; QProcess m_gdbProc; + QProcess m_uploadProc; Core::Utils::ConsoleProcess m_stubProc; @@ -354,6 +356,8 @@ private: const WatchData &parent); void setWatchDataType(WatchData &data, const GdbMi &mi); void setLocals(const QList &locals); + + bool startModeAllowsDumpers() const; QString m_editedData; int m_pendingRequests; diff --git a/src/plugins/debugger/startremotedialog.ui b/src/plugins/debugger/startremotedialog.ui index 5f616cf90b2..af0bc703237 100644 --- a/src/plugins/debugger/startremotedialog.ui +++ b/src/plugins/debugger/startremotedialog.ui @@ -49,6 +49,16 @@ + + + + Server start script + + + + + + diff --git a/tests/manual/fakevim/runremotely.sh b/tests/manual/fakevim/runremotely.sh new file mode 100755 index 00000000000..927c8aec9d9 --- /dev/null +++ b/tests/manual/fakevim/runremotely.sh @@ -0,0 +1,15 @@ +#!/bin/sh +account=berlin@hd +sourcedir=/data5/dev/creator/tests/manual/fakevim/ +exename=fakevim +targetdir=/tmp/run-${exename} + +executable=${sourcedir}/${exename} +qtlibs=`ldd ${executable} | grep libQt | sed -e 's/^.*=> \(.*\) (.*)$/\1/'` + +ssh ${account} "mkdir -p ${targetdir}" +scp ${executable} ${qtlibs} ${account}:${targetdir} +ssh ${account} "chrpath -r ${targetdir} ${targetdir}/*" +ssh ${account} "gdbserver localhost:5555 ${targetdir}/${exename}" +ssh ${account} "rm ${targetdir}/* ; rmdir ${targetdir}" + From b82673c982cf6ad5d835360526e36ac3e60a0e24 Mon Sep 17 00:00:00 2001 From: mae Date: Wed, 6 May 2009 16:22:29 +0200 Subject: [PATCH 05/22] do NOT steal the initial focus from the editor. Restore a session, focus should be on the editor, not on some hidden tab widget on the projects pane. --- src/plugins/projectexplorer/projectwindow.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 410a78fb413..3323843b99a 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -131,8 +131,6 @@ ProjectWindow::~ProjectWindow() void ProjectWindow::restoreStatus() { - m_panelsTabWidget->setFocus(); - if (!m_treeWidget->currentItem() && m_treeWidget->topLevelItemCount()) { m_treeWidget->setCurrentItem(m_treeWidget->topLevelItem(0), 0, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); } From f7ec42a2082e1d2b54f188321cf41f85afd8f51e Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Wed, 6 May 2009 16:22:20 +0200 Subject: [PATCH 06/22] Documentation: Explain external library handling. --- doc/qtcreator.qdoc | 64 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc index 98f5073a1d1..ce393023a05 100644 --- a/doc/qtcreator.qdoc +++ b/doc/qtcreator.qdoc @@ -57,6 +57,7 @@ \o \l{Debugging with Qt Creator} \o \l{CMake Support in Qt Creator} \o \l{Support for Generic Projects in Qt Creator} + \o \l{Handling External Libraries} \o \l{Tips and Tricks} \o \l{Keyboard Shortcuts} \o \l{Glossary} @@ -694,7 +695,6 @@ */ - /*! \contentspage index.html \previouspage creator-writing-program.html @@ -1358,7 +1358,7 @@ \contentspage index.html \previouspage creator-debugging.html \page creator-cmake-support.html - \nextpage creator-tips.html + \nextpage creator-generic-projects.html \title CMake Support in Qt Creator @@ -1412,7 +1412,7 @@ \contentspage index.html \previouspage creator-cmake-support.html \page creator-generic-projects.html - \nextpage creator-tips.html + \nextpage creator-external-library-handling.html \title Support for Generic Projects in Qt Creator @@ -1428,10 +1428,65 @@ */ +/*! + \contentspage index.html + \previouspage creator-generic-projects.html + \page creator-external-library-handling.html + \nextpage creator-tips.html + + \title Handling External Libraries + + Knowing external libraries is not only important for the + underlying build system, but also for Qt Creator itself. + This way, it can support code completion and syntax highlighting + for external libraries as if they were part of the current + project or the Qt library. + + The way to add a library to the project depends on the + project type, which influcences the build system used. + The following sections describe the the procedure required + for each project type. + + \section1 QMake Projects (the default) + + Open your your (ending in \c{.pro}) file from the + \gui{Projects} pane, which will now show up in the editor. + Follow the description in the + \l{http://doc.qtsoftware.com/latest/make-project-files.html#declaring-other-libraries} + {Declaring other Libraries} section of the Qt documentation. + + If your project does sucessfully build and link against + the external library, syntax completion and highlighting + should also work. + + \section1 CMake Projects + + In CMake, libaries are usually detected using the \c{FIND_PACKAGE()} macro. + A couple of them are already being shipped with CMake, they can be found in + the \c{Modules} directory of your CMake installation. If you provide + libraries on your own, you will need to provide your own \c{FindFoo.cmake} + file. Refer to the \l{http://vtk.org/Wiki/CMake_FAQ#Writing_FindXXX.cmake_files} + {CMake FAQ} for details. + + As with qmake project, syntax completion and highlighting should work if + you can sucessfully build and link against the external library. + + \section1 Generic Projects + + If you import a project using the \e{Generic Projects} function, Qt Creator will + create a file called \c{.includes} in your project root directory. It will + contain all project subdirectories it that was able to find relevant header files in. + Simply add your include pathes there. + + Note that in Generic Project mode, Qt Creator will refrain from touching any + project settings, so the above is merely a hint for the code completion and + the syntax highlighter. +*/ + /*! \contentspage index.html - \previouspage creator-debugging.html + \previouspage creator-external-library-handling.html \page creator-tips.html \nextpage creator-keyboard-shortcuts.html @@ -1734,4 +1789,3 @@ QtCreator/src/shared/cplusplus \endlist */ - From 246671c439742f2f19b4592bc97e581364ed40f0 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 6 May 2009 16:26:32 +0200 Subject: [PATCH 07/22] Don't annoy Windows users with alien dir separators --- src/plugins/coreplugin/dialogs/saveitemsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp index c49ae2dbbe6..5b58f931f0c 100644 --- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp @@ -69,7 +69,7 @@ SaveItemsDialog::SaveItemsDialog(QWidget *parent, visibleName = info.fileName(); } QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.treeWidget, QStringList() - << visibleName << directory); + << visibleName << QDir::toNativeSeparators(directory)); item->setData(0, Qt::UserRole, qVariantFromValue(file)); } From b38ba4d8732f1196478d81d04886cd535f3b41be Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 6 May 2009 16:48:28 +0200 Subject: [PATCH 08/22] compile fix --- src/plugins/coreplugin/dialogs/saveitemsdialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp index 5b58f931f0c..c2e91aae0cb 100644 --- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp @@ -33,6 +33,7 @@ #include +#include #include #include #include From 7d936a398c25163ebc8a44396559327e55987308 Mon Sep 17 00:00:00 2001 From: mae Date: Wed, 6 May 2009 16:48:51 +0200 Subject: [PATCH 09/22] make insertion of braces a bit faster, by saving some of the rehighlighting work --- src/plugins/cppeditor/cpphighlighter.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp index 9c8e60db411..cf266a2a248 100644 --- a/src/plugins/cppeditor/cpphighlighter.cpp +++ b/src/plugins/cppeditor/cpphighlighter.cpp @@ -58,6 +58,7 @@ void CppHighlighter::highlightBlock(const QString &text) braceDepth = previousState >> 8; } + SimpleLexer tokenize; tokenize.setQtMocRunEnabled(false); @@ -210,6 +211,28 @@ void CppHighlighter::highlightBlock(const QString &text) TextEditDocumentLayout::setParentheses(currentBlock(), parentheses); + + // optimization: if only the brace depth changes, we adjust subsequent blocks + // to have QSyntaxHighlighter stop the rehighlighting + int currentState = currentBlockState(); + if (currentState != -1) { + int oldState = currentState & 0xff; + int oldBraceDepth = currentState >> 8; + if (oldState == tokenize.state() && oldBraceDepth != braceDepth) { + int delta = braceDepth - oldBraceDepth; + QTextBlock block = currentBlock().next(); + while (block.isValid()) { + currentState = block.userState(); + if (currentState != -1) { + oldState = currentState & 0xff; + oldBraceDepth = currentState >> 8; + block.setUserState(qMax(0, (oldBraceDepth + delta) << 8 ) | oldState); + } + block = block.next(); + } + } + } + setCurrentBlockState((braceDepth << 8) | tokenize.state()); } From c96d63f0e8b45c25379fffb2750abdb01dd57e92 Mon Sep 17 00:00:00 2001 From: mae Date: Wed, 6 May 2009 16:51:36 +0200 Subject: [PATCH 10/22] compile --- src/plugins/coreplugin/dialogs/saveitemsdialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp index 5b58f931f0c..ed1b24e0978 100644 --- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include #include From 62e370ae4c0c46f08309853a478c252ffd3ec8af Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja Date: Wed, 6 May 2009 17:09:27 +0200 Subject: [PATCH 11/22] Fixes: Doc - added page navigation shortcut to the Keyboard Shortcuts page. Task: 251975 --- doc/qtcreator.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc index ce393023a05..0ea873d4920 100644 --- a/doc/qtcreator.qdoc +++ b/doc/qtcreator.qdoc @@ -1581,6 +1581,9 @@ \row \o Go to a line \o Ctrl + L + \row + \o Navigate between pages + \o Alt + Left, Alt + Right \row \o Start debugging \o F5 From 286d8091948148567c8ae7c5ddb1e0d09864249f Mon Sep 17 00:00:00 2001 From: con Date: Wed, 6 May 2009 16:43:49 +0200 Subject: [PATCH 12/22] Fix the crash fix d03b5714c7e3e2fe56c7008418d2aa68c197e7c2. --- src/plugins/find/findtoolwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/find/findtoolwindow.cpp b/src/plugins/find/findtoolwindow.cpp index 7cab358b90f..c3a89c22426 100644 --- a/src/plugins/find/findtoolwindow.cpp +++ b/src/plugins/find/findtoolwindow.cpp @@ -136,7 +136,7 @@ void FindToolWindow::writeSettings() { QSettings *settings = Core::ICore::instance()->settings(); settings->beginGroup("Find"); - settings->setValue("CurrentFilter", m_currentFilter ? 0 : m_currentFilter->id()); + settings->setValue("CurrentFilter", m_currentFilter ? m_currentFilter->id() : 0); foreach (IFindFilter *filter, m_filters) filter->writeSettings(settings); settings->endGroup(); From c6a0d43d7f813be805926ed1a5b2ec75d7f64fb4 Mon Sep 17 00:00:00 2001 From: con Date: Wed, 6 May 2009 16:06:43 +0200 Subject: [PATCH 13/22] Remove unused/unnecessary code. --- .../actionmanager/actioncontainer.cpp | 78 +++++-------------- .../actionmanager/actioncontainer_p.h | 10 --- .../actionmanager/actionmanager.cpp | 11 ++- .../coreplugin/actionmanager/command.cpp | 41 +++------- .../coreplugin/actionmanager/command.h | 7 -- .../coreplugin/actionmanager/command_p.h | 17 +--- 6 files changed, 35 insertions(+), 129 deletions(-) diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp index 960d3e4246f..4b96a9880fe 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp +++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp @@ -153,7 +153,7 @@ using namespace Core::Internal; */ ActionContainerPrivate::ActionContainerPrivate(int id) - : m_data(CS_None), m_id(id) + : m_data(0), m_id(id) { } @@ -168,16 +168,6 @@ bool ActionContainerPrivate::hasEmptyAction(EmptyAction ea) const return (m_data & EA_Mask) == ea; } -void ActionContainerPrivate::setState(ContainerState state) -{ - m_data |= state; -} - -bool ActionContainerPrivate::hasState(ContainerState state) const -{ - return (m_data & state); -} - void ActionContainerPrivate::appendGroup(const QString &group) { int gid = UniqueIDManager::instance()->uniqueIdentifier(group); @@ -198,26 +188,14 @@ void ActionContainerPrivate::addAction(Command *action, const QString &group) return; ActionManagerPrivate *am = ActionManagerPrivate::instance(); - Action *a = static_cast(action); - if (a->stateFlags() & CommandPrivate::CS_PreLocation) { - QList locs = a->locations(); - for (int i=0; iactionContainer(locs.at(i).m_container)) { - ActionContainerPrivate *ac = static_cast(aci); - ac->addAction(action, locs.at(i).m_position, false); - } - } - a->setStateFlags(a->stateFlags() | CommandPrivate::CS_Initialized); - } else { - UniqueIDManager *idmanager = UniqueIDManager::instance(); - int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); - if (!group.isEmpty()) - grpid = idmanager->uniqueIdentifier(group); - if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) - qWarning() << "*** addAction(): Unknown group: " << group; - int pos = ((grpid << 16) | 0xFFFF); - addAction(action, pos, true); - } + UniqueIDManager *idmanager = UniqueIDManager::instance(); + int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); + if (!group.isEmpty()) + grpid = idmanager->uniqueIdentifier(group); + if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) + qWarning() << "*** addAction(): Unknown group: " << group; + int pos = ((grpid << 16) | 0xFFFF); + addAction(action, pos, true); } void ActionContainerPrivate::addMenu(ActionContainer *menu, const QString &group) @@ -227,24 +205,14 @@ void ActionContainerPrivate::addMenu(ActionContainer *menu, const QString &group return; ActionManagerPrivate *am = ActionManagerPrivate::instance(); - MenuActionContainer *mc = static_cast(menu); - if (mc->hasState(ActionContainerPrivate::CS_PreLocation)) { - CommandLocation loc = mc->location(); - if (ActionContainer *aci = am->actionContainer(loc.m_container)) { - ActionContainerPrivate *ac = static_cast(aci); - ac->addMenu(menu, loc.m_position, false); - } - mc->setState(ActionContainerPrivate::CS_Initialized); - } else { - UniqueIDManager *idmanager = UniqueIDManager::instance(); - int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); - if (!group.isEmpty()) - grpid = idmanager->uniqueIdentifier(group); - if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) - qWarning() << "*** addMenu(): Unknown group: " << group; - int pos = ((grpid << 16) | 0xFFFF); - addMenu(menu, pos, true); - } + UniqueIDManager *idmanager = UniqueIDManager::instance(); + int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); + if (!group.isEmpty()) + grpid = idmanager->uniqueIdentifier(group); + if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) + qWarning() << "*** addMenu(): Unknown group: " << group; + int pos = ((grpid << 16) | 0xFFFF); + addMenu(menu, pos, true); } int ActionContainerPrivate::id() const @@ -264,14 +232,7 @@ QMenuBar *ActionContainerPrivate::menuBar() const bool ActionContainerPrivate::canAddAction(Command *action) const { - if (action->type() != Command::CT_OverridableAction) - return false; - - CommandPrivate *cmd = static_cast(action); - if (cmd->stateFlags() & CommandPrivate::CS_Initialized) - return false; - - return true; + return (action->action() != 0); } void ActionContainerPrivate::addAction(Command *action, int pos, bool setpos) @@ -444,9 +405,6 @@ bool MenuActionContainer::update() bool MenuActionContainer::canBeAddedToMenu() const { - if (hasState(ActionContainerPrivate::CS_Initialized)) - return false; - return true; } diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h index 5decc338fea..441705f113b 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h +++ b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h @@ -41,22 +41,12 @@ namespace Internal { class ActionContainerPrivate : public Core::ActionContainer { public: - enum ContainerState { - CS_None = 0x000000, - CS_Initialized = 0x010000, - CS_PreLocation = 0x020000, - CS_UserDefined = 0x040000 - }; - ActionContainerPrivate(int id); virtual ~ActionContainerPrivate() {} void setEmptyAction(EmptyAction ea); bool hasEmptyAction(EmptyAction ea) const; - void setState(ContainerState state); - bool hasState(ContainerState state) const; - QAction *insertLocation(const QString &group) const; void appendGroup(const QString &group); void addAction(Command *action, const QString &group = QString()); diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index ca8130d8ec1..608956623e1 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -335,13 +335,12 @@ Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const OverrideableAction *a = 0; const int uid = UniqueIDManager::instance()->uniqueIdentifier(id); if (CommandPrivate *c = m_idCmdMap.value(uid, 0)) { - if (c->type() != Command::CT_OverridableAction) { + a = qobject_cast(c); + if (!a) { qWarning() << "registerAction: id" << id << "is registered with a different command type."; return c; } - a = static_cast(c); - } - if (!a) { + } else { a = new OverrideableAction(uid); m_idCmdMap.insert(uid, a); } @@ -381,11 +380,11 @@ Command *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const QStri Shortcut *sc = 0; int uid = UniqueIDManager::instance()->uniqueIdentifier(id); if (CommandPrivate *c = m_idCmdMap.value(uid, 0)) { - if (c->type() != Command::CT_Shortcut) { + sc = qobject_cast(c); + if (!sc) { qWarning() << "registerShortcut: id" << id << "is registered with a different command type."; return c; } - sc = static_cast(c); } else { sc = new Shortcut(uid); m_idCmdMap.insert(uid, sc); diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index edd7b78190e..9876c3fa8c3 100644 --- a/src/plugins/coreplugin/actionmanager/command.cpp +++ b/src/plugins/coreplugin/actionmanager/command.cpp @@ -41,10 +41,6 @@ */ -/*! - \enum Command::CommandType -*/ - /*! \enum Command::CommandAttribute */ @@ -57,10 +53,6 @@ \fn virtual int Command::id() const */ -/*! - \fn virtual CommandType Command::type() const -*/ - /*! \fn virtual QAction *Command::action() const */ @@ -97,21 +89,11 @@ using namespace Core::Internal; \internal */ -CommandPrivate::CommandPrivate(CommandType type, int id) - : m_type(type), m_id(id) +CommandPrivate::CommandPrivate(int id) + : m_attributes(0), m_id(id) { } -void CommandPrivate::setStateFlags(int state) -{ - m_type |= (state & CS_Mask); -} - -int CommandPrivate::stateFlags() const -{ - return (m_type & CS_Mask); -} - void CommandPrivate::setDefaultKeySequence(const QKeySequence &key) { m_defaultKey = key; @@ -137,11 +119,6 @@ int CommandPrivate::id() const return m_id; } -CommandPrivate::CommandType CommandPrivate::type() const -{ - return (CommandType)(m_type & CT_Mask); -} - QAction *CommandPrivate::action() const { return 0; @@ -154,17 +131,17 @@ QShortcut *CommandPrivate::shortcut() const void CommandPrivate::setAttribute(CommandAttribute attr) { - m_type |= attr; + m_attributes |= attr; } void CommandPrivate::removeAttribute(CommandAttribute attr) { - m_type &= ~attr; + m_attributes &= ~attr; } bool CommandPrivate::hasAttribute(CommandAttribute attr) const { - return (m_type & attr); + return (m_attributes & attr); } QString CommandPrivate::stringWithAppendedShortcut(const QString &str) const @@ -183,7 +160,7 @@ QString CommandPrivate::stringWithAppendedShortcut(const QString &str) const ... */ Shortcut::Shortcut(int id) - : CommandPrivate(CT_Shortcut, id), m_shortcut(0) + : CommandPrivate(id), m_shortcut(0) { } @@ -293,8 +270,8 @@ bool Shortcut::isActive() const /*! ... */ -Action::Action(CommandType type, int id) - : CommandPrivate(type, id), m_action(0) +Action::Action(int id) + : CommandPrivate(id), m_action(0) { } @@ -385,7 +362,7 @@ QKeySequence Action::keySequence() const ... */ OverrideableAction::OverrideableAction(int id) - : Action(CT_OverridableAction, id), m_currentAction(0), m_active(false), + : Action(id), m_currentAction(0), m_active(false), m_contextInitialized(false) { } diff --git a/src/plugins/coreplugin/actionmanager/command.h b/src/plugins/coreplugin/actionmanager/command.h index 792d3990261..b8e8a326555 100644 --- a/src/plugins/coreplugin/actionmanager/command.h +++ b/src/plugins/coreplugin/actionmanager/command.h @@ -42,12 +42,6 @@ class CORE_EXPORT Command : public QObject { Q_OBJECT public: - enum CommandType { - CT_Shortcut = 0x0001, - CT_OverridableAction = 0x0002, - CT_Mask = 0x00FF - }; - enum CommandAttribute { CA_Hide = 0x0100, CA_UpdateText = 0x0200, @@ -64,7 +58,6 @@ public: virtual QString defaultText() const = 0; virtual int id() const = 0; - virtual CommandType type() const = 0; virtual QAction *action() const = 0; virtual QShortcut *shortcut() const = 0; diff --git a/src/plugins/coreplugin/actionmanager/command_p.h b/src/plugins/coreplugin/actionmanager/command_p.h index 4bbf261c073..d0f59a03cca 100644 --- a/src/plugins/coreplugin/actionmanager/command_p.h +++ b/src/plugins/coreplugin/actionmanager/command_p.h @@ -45,19 +45,9 @@ class CommandPrivate : public Core::Command { Q_OBJECT public: - enum CommandState { - CS_PreLocation = 0x020000, - CS_LocationChanged = 0x040000, - CS_Initialized = 0x080000, - CS_Mask = 0xFF0000 - }; - - CommandPrivate(CommandType type, int id); + CommandPrivate(int id); virtual ~CommandPrivate() {} - void setStateFlags(int state); - int stateFlags() const; - virtual QString name() const = 0; void setDefaultKeySequence(const QKeySequence &key); @@ -67,7 +57,6 @@ public: QString defaultText() const; int id() const; - CommandType type() const; QAction *action() const; QShortcut *shortcut() const; @@ -82,7 +71,7 @@ public: protected: QString m_category; - int m_type; + int m_attributes; int m_id; QKeySequence m_defaultKey; QString m_defaultText; @@ -121,7 +110,7 @@ class Action : public CommandPrivate { Q_OBJECT public: - Action(CommandType type, int id); + Action(int id); QString name() const; From 63f760a8d60c339c26ac7b805eef2f4b21709311 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Wed, 6 May 2009 17:52:32 +0200 Subject: [PATCH 14/22] Unify Gdb and Gdb spelling, rename Gdb View to "Debugger", update docs. --- doc/images/qtcreator-debug-view.png | Bin 143447 -> 120232 bytes doc/qtcreator.qdoc | 6 +++--- src/plugins/debugger/cdb/cdboptionspage.cpp | 2 +- .../debugger/cdb/cdboptionspagewidget.ui | 2 +- src/plugins/debugger/debuggeroutputwindow.cpp | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/images/qtcreator-debug-view.png b/doc/images/qtcreator-debug-view.png index f1f08767e5239875f3ca55007c97e2b1241a49da..c4c5e844ea4e6cd415ba472b8725e35f2adb4430 100644 GIT binary patch literal 120232 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

B^(SB76u)W&~lACHf?98qHEdGd9S;S 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

ej?EKZRMiB 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�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 literal 143447 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/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�WaHb3pxla*I%ubm57 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 VI;9cM7#J8BJYD@<);T3K0RRXMW>NqE diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc index 0ea873d4920..35707cea21e 100644 --- a/doc/qtcreator.qdoc +++ b/doc/qtcreator.qdoc @@ -37,9 +37,9 @@ files and classes using minimal keystrokes. \o \bold{Support for qmake's .pro file format}: The project's \c{.pro} file is used as a project description file. - \o \bold{Debugging Interface to GDB}: Applications can be debugged + \o \bold{Debugging Interface}: Applications can be debugged within Qt Creator using a graphical frontend to the GNU symbolic - debugger. + debugger (GDB) and the Microsoft Console Debugger (CDB). \endlist \endtable @@ -1072,7 +1072,7 @@ Here, you can lock or unlock the location of your views as well as display or hide them. Among the views you can display are \gui Breakpoints, - \gui Disassembler, \gui Modules, \gui Registers, \gui Gdb, \gui Stack, and + \gui Disassembler, \gui Modules, \gui Registers, \gui Debugger, \gui Stack, and \gui Thread. The position of your dock widgets will be saved for future sessions. diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp index c57149cf09f..7ae8f765acc 100644 --- a/src/plugins/debugger/cdb/cdboptionspage.cpp +++ b/src/plugins/debugger/cdb/cdboptionspage.cpp @@ -34,7 +34,7 @@ #include #include -const char * const CDB_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::CdbOptionsPageWidget", "CDB"); +const char * const CDB_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::CdbOptionsPageWidget", "Cdb"); namespace Debugger { namespace Internal { diff --git a/src/plugins/debugger/cdb/cdboptionspagewidget.ui b/src/plugins/debugger/cdb/cdboptionspagewidget.ui index 7afc74c1dde..9840aef3c07 100644 --- a/src/plugins/debugger/cdb/cdboptionspagewidget.ui +++ b/src/plugins/debugger/cdb/cdboptionspagewidget.ui @@ -22,7 +22,7 @@ These options take effect at the next start of Qt Creator. - CDB + Cdb true diff --git a/src/plugins/debugger/debuggeroutputwindow.cpp b/src/plugins/debugger/debuggeroutputwindow.cpp index c9b622c0754..0b62498d7c8 100644 --- a/src/plugins/debugger/debuggeroutputwindow.cpp +++ b/src/plugins/debugger/debuggeroutputwindow.cpp @@ -207,7 +207,7 @@ public slots: DebuggerOutputWindow::DebuggerOutputWindow(QWidget *parent) : QWidget(parent) { - setWindowTitle(tr("Gdb")); + setWindowTitle(tr("Debugger")); QSplitter *m_splitter = new QSplitter(Qt::Horizontal, this); // mixed input/output From 647e637a9caad63167361882396a7d3ab281b343 Mon Sep 17 00:00:00 2001 From: con Date: Tue, 5 May 2009 18:37:18 +0200 Subject: [PATCH 15/22] A bit of api documentation. --- .../coreplugin/actionmanager/command.cpp | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index 9876c3fa8c3..80ca9f46af7 100644 --- a/src/plugins/coreplugin/actionmanager/command.cpp +++ b/src/plugins/coreplugin/actionmanager/command.cpp @@ -38,7 +38,25 @@ \mainclass \brief The class Command represents an action like a menu item, tool button, or shortcut. + You don't create Command objects directly, instead use \l{ActionManager::registerAction()} + to register an action and retrieve a Command. The Command object represents the user visible + action and its properties. If multiple actions are registered with the same ID (but + different contexts) the returned Command is the shared one between these actions. + A Command has two basic properties: A default shortcut and a default text. The default + shortcut is a key sequence that the user can use to trigger the active action that + the Command represents. The default text is e.g. used for representing the Command + in the keyboard shortcut preference pane. If the default text is empty, the text + of the visible action is used. + + The user visible action is updated to represent the state of the active action (if any). + For performance reasons only the enabled and visible state are considered by default though. + You can tell a Command to also update the actions icon and text by setting the + corresponding \l{Command::CommandAttribute}{attribute}. + + If there is no active action, the default behavior of the visible action is to be disabled. + You can change that behavior to make the visible action hide instead via the Command's + \l{Command::CommandAttribute}{attributes}. */ /*! @@ -85,7 +103,6 @@ using namespace Core::Internal; /*! \class CommandPrivate - \inheaderfile command_p.h \internal */ @@ -417,9 +434,6 @@ bool OverrideableAction::setCurrentContext(const QList &context) return false; } -/*! - ... -*/ void OverrideableAction::addOverrideAction(QAction *action, const QList &context) { if (context.isEmpty()) { @@ -434,9 +448,6 @@ void OverrideableAction::addOverrideAction(QAction *action, const QList &co } } -/*! - ... -*/ void OverrideableAction::actionChanged() { if (hasAttribute(CA_UpdateIcon)) { @@ -459,9 +470,6 @@ void OverrideableAction::actionChanged() m_action->setVisible(m_currentAction->isVisible()); } -/*! - ... -*/ bool OverrideableAction::isActive() const { return m_active; From fbe979a578f08c9e0ecda99a4b72b59e07364eff Mon Sep 17 00:00:00 2001 From: con Date: Wed, 6 May 2009 18:29:37 +0200 Subject: [PATCH 16/22] More documentation. --- .../coreplugin/actionmanager/command.cpp | 167 +++++++++++------- .../coreplugin/actionmanager/command.h | 3 +- 2 files changed, 101 insertions(+), 69 deletions(-) diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index 80ca9f46af7..a62daff7d87 100644 --- a/src/plugins/coreplugin/actionmanager/command.cpp +++ b/src/plugins/coreplugin/actionmanager/command.cpp @@ -61,42 +61,128 @@ /*! \enum Command::CommandAttribute + Defines how the user visible action is updated when the active action changes. + The default is to update the enabled and visible state, and to disable the + user visible action when there is no active action. + \omitvalue CA_Mask + \value CA_UpdateText + Also update the actions text. + \value CA_UpdateIcon + Also update the actions icon. + \value CA_Hide + When there is no active action, hide the user "visible" action, instead of just + disabling it. + \value CA_NonConfigureable + Flag to indicate that the keyboard shortcut of this Command should not be + configurable by the user. */ /*! - \fn virtual void Command::setDefaultKeySequence(const QKeySequence &key) + \fn void Command::setDefaultKeySequence(const QKeySequence &key) + Set the default keyboard shortcut that can be used to activate this command to \a key. + This is used if the user didn't customize the shortcut, or resets the shortcut + to the default one. */ /*! - \fn virtual int Command::id() const + \fn void Command::defaultKeySequence() const + Returns the default keyboard shortcut that can be used to activate this command. + \sa setDefaultKeySequence() */ /*! - \fn virtual QAction *Command::action() const + \fn void Command::keySequenceChanged() + Sent when the keyboard shortcut assigned to this Command changes, e.g. + when the user sets it in the keyboard shortcut settings dialog. */ /*! - \fn virtual QShortcut *Command::shortcut() const + \fn QKeySequence Command::keySequence() const + Returns the current keyboard shortcut assigned to this Command. + \sa defaultKeySequence() */ /*! - \fn virtual void Command::setAttribute(CommandAttribute attr) + \fn void Command::setKeySequence(const QKeySequence &key) + \internal */ /*! - \fn virtual void Command::removeAttribute(CommandAttribute attr) + \fn void Command::setDefaultText(const QString &text) + Set the \a text that is used to represent the Command in the + keyboard shortcut settings dialog. If you don't set this, + the current text from the user visible action is taken (which + is ok in many cases). */ /*! - \fn virtual bool Command::hasAttribute(CommandAttribute attr) const + \fn QString Command::defaultText() const + Returns the text that is used to present this Command to the user. + \sa setDefaultText() */ /*! - \fn virtual bool Command::isActive() const + \fn int Command::id() const + \internal */ /*! - \fn virtual Command::~Command() + \fn QString Command::stringWithAppendedShortcut(const QString &string) const + Returns the \a string with an appended representation of the keyboard shortcut + that is currently assigned to this Command. +*/ + +/*! + \fn QAction *Command::action() const + Returns the user visible action for this Command. + If the Command represents a shortcut, it returns null. + Use this action to put it on e.g. tool buttons. The action + automatically forwards trigger and toggle signals to the + action that is currently active for this Command. + It also shows the current keyboard shortcut in its + tool tip (in addition to the tool tip of the active action) + and gets disabled/hidden when there is + no active action for the current context. +*/ + +/*! + \fn QShortcut *Command::shortcut() const + Returns the shortcut for this Command. + If the Command represents an action, it returns null. +*/ + +/*! + \fn void Command::setAttribute(CommandAttribute attribute) + Add the \a attribute to the attributes of this Command. + \sa CommandAttribute + \sa removeAttribute() + \sa hasAttribute() +*/ + +/*! + \fn void Command::removeAttribute(CommandAttribute attribute) + Remove the \a attribute from the attributes of this Command. + \sa CommandAttribute + \sa setAttribute() +*/ + +/*! + \fn bool Command::hasAttribute(CommandAttribute attribute) const + Returns if the Command has the \a attribute set. + \sa CommandAttribute + \sa removeAttribute() + \sa setAttribute() +*/ + +/*! + \fn bool Command::isActive() const + Returns if the Command has an active action/shortcut for the current + context. +*/ + +/*! + \fn Command::~Command() + \internal */ using namespace Core::Internal; @@ -171,20 +257,15 @@ QString CommandPrivate::stringWithAppendedShortcut(const QString &str) const /*! \class Shortcut + \internal */ -/*! - ... -*/ Shortcut::Shortcut(int id) : CommandPrivate(id), m_shortcut(0) { } -/*! - ... -*/ QString Shortcut::name() const { if (!m_shortcut) @@ -193,41 +274,26 @@ QString Shortcut::name() const return m_shortcut->whatsThis(); } -/*! - ... -*/ void Shortcut::setShortcut(QShortcut *shortcut) { m_shortcut = shortcut; } -/*! - ... -*/ QShortcut *Shortcut::shortcut() const { return m_shortcut; } -/*! - ... -*/ void Shortcut::setContext(const QList &context) { m_context = context; } -/*! - ... -*/ QList Shortcut::context() const { return m_context; } -/*! - ... -*/ void Shortcut::setDefaultKeySequence(const QKeySequence &key) { setKeySequence(key); @@ -255,9 +321,6 @@ QString Shortcut::defaultText() const return m_defaultText; } -/*! - ... -*/ bool Shortcut::setCurrentContext(const QList &context) { foreach (int ctxt, m_context) { @@ -270,9 +333,6 @@ bool Shortcut::setCurrentContext(const QList &context) return false; } -/*! - ... -*/ bool Shortcut::isActive() const { return m_shortcut->isEnabled(); @@ -281,11 +341,8 @@ bool Shortcut::isActive() const // ---------- Action ------------ /*! - \class Action -*/ - -/*! - ... + \class Action + \internal */ Action::Action(int id) : CommandPrivate(id), m_action(0) @@ -293,9 +350,6 @@ Action::Action(int id) } -/*! - ... -*/ QString Action::name() const { if (!m_action) @@ -304,9 +358,6 @@ QString Action::name() const return m_action->text(); } -/*! - ... -*/ void Action::setAction(QAction *action) { m_action = action; @@ -316,33 +367,21 @@ void Action::setAction(QAction *action) } } -/*! - ... -*/ QAction *Action::action() const { return m_action; } -/*! - ... -*/ void Action::setLocations(const QList &locations) { m_locations = locations; } -/*! - ... -*/ QList Action::locations() const { return m_locations; } -/*! - ... -*/ void Action::setDefaultKeySequence(const QKeySequence &key) { setKeySequence(key); @@ -373,28 +412,20 @@ QKeySequence Action::keySequence() const /*! \class OverrideableAction + \internal */ -/*! - ... -*/ OverrideableAction::OverrideableAction(int id) : Action(id), m_currentAction(0), m_active(false), m_contextInitialized(false) { } -/*! - ... -*/ void OverrideableAction::setAction(QAction *action) { Action::setAction(action); } -/*! - ... -*/ bool OverrideableAction::setCurrentContext(const QList &context) { m_context = context; diff --git a/src/plugins/coreplugin/actionmanager/command.h b/src/plugins/coreplugin/actionmanager/command.h index b8e8a326555..af999bee535 100644 --- a/src/plugins/coreplugin/actionmanager/command.h +++ b/src/plugins/coreplugin/actionmanager/command.h @@ -51,7 +51,6 @@ public: }; virtual void setDefaultKeySequence(const QKeySequence &key) = 0; - virtual void setKeySequence(const QKeySequence &key) = 0; virtual QKeySequence defaultKeySequence() const = 0; virtual QKeySequence keySequence() const = 0; virtual void setDefaultText(const QString &text) = 0; @@ -70,6 +69,8 @@ public: virtual ~Command() {} + virtual void setKeySequence(const QKeySequence &key) = 0; + virtual QString stringWithAppendedShortcut(const QString &str) const = 0; signals: From 905f3d6c30dbab2bd97bd323fec2fe1f218f42fb Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 14:07:55 +0200 Subject: [PATCH 17/22] use explicit flag to request token substitution in gdb command instead of searching for something which looks like one. --- src/plugins/debugger/gdbengine.cpp | 8 ++++---- src/plugins/debugger/gdbengine.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 94809204e91..e2239c878e0 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -656,7 +656,7 @@ void GdbEngine::flushCommand(GdbCommand &cmd) ++currentToken(); m_cookieForToken[currentToken()] = cmd; cmd.command = QString::number(currentToken()) + cmd.command; - if (cmd.command.contains(__("%1"))) + if (cmd.flags & EmbedToken) cmd.command = cmd.command.arg(currentToken()); m_gdbProc.write(cmd.command.toLatin1() + "\r\n"); @@ -2922,7 +2922,7 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren) QVariant var; var.setValue(data); - execCommand(cmd, WatchUpdate, CB(handleDebuggingHelperValue1), var); + execCommand(cmd, WatchUpdate | EmbedToken, CB(handleDebuggingHelperValue1), var); q->showStatusMessage( tr("Retrieving data for watch view (%1 requests pending)...") @@ -3933,7 +3933,7 @@ void GdbEngine::tryLoadDebuggingHelpers() execCommand(_("sharedlibrary ") + dotEscape(lib)); #endif // retreive list of dumpable classes - execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)")); + execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)"), EmbedToken); execCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper)); } @@ -3941,7 +3941,7 @@ void GdbEngine::recheckDebuggingHelperAvailability() { if (startModeAllowsDumpers()) { // retreive list of dumpable classes - execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)")); + execCommand(_("call (void*)qDumpObjectData440(1,%1+1,0,0,0,0,0,0)"), EmbedToken); execCommand(_("p (char*)&qDumpOutBuffer"), CB(handleQueryDebuggingHelper)); } } diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h index a3767ce45c4..d749e75190a 100644 --- a/src/plugins/debugger/gdbengine.h +++ b/src/plugins/debugger/gdbengine.h @@ -147,7 +147,8 @@ public: // otherwise the Qt flag macros are unhappy NeedsStop = 1, Discardable = 2, RebuildModel = 4, - WatchUpdate = Discardable|RebuildModel + WatchUpdate = Discardable|RebuildModel, + EmbedToken = 8 }; Q_DECLARE_FLAGS(GdbCommandFlags, GdbCommandFlag) private: From 97ffee6bdd8cc7cbb4eb709057a3973773222795 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 16:02:06 +0200 Subject: [PATCH 18/22] automate setting IDE_BUILD_TREE --- bin/bin.pro | 2 -- qtcreator.pri | 11 +++++------ share/qtcreator/static.pro | 2 -- share/qtcreator/translations/translations.pro | 1 - src/app/app.pro | 2 -- src/libs/utils/process_stub.pro | 1 - src/plugins/debugger/dumper.pro | 2 +- src/qworkbenchlibrary.pri | 1 - src/qworkbenchplugin.pri | 3 --- 9 files changed, 6 insertions(+), 19 deletions(-) diff --git a/bin/bin.pro b/bin/bin.pro index f0352035b8a..959be0aedc8 100644 --- a/bin/bin.pro +++ b/bin/bin.pro @@ -1,5 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/.. - include(../qtcreator.pri) TEMPLATE = app diff --git a/qtcreator.pri b/qtcreator.pri index 0166ab6c969..abd82b2cb4e 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -1,5 +1,3 @@ -IDE_SOURCE_TREE = $$PWD - defineReplace(cleanPath) { win32:1 ~= s|\\\\|/|g contains(1, ^/.*):pfx = / @@ -35,10 +33,11 @@ equals(TEST, 1) { DEFINES += WITH_TESTS } -isEmpty(IDE_BUILD_TREE) { - error("qtcreator.pri: including file must define IDE_BUILD_TREE (probably a relative path)") -} -IDE_BUILD_TREE = $$cleanPath($$IDE_BUILD_TREE) +IDE_SOURCE_TREE = $$PWD +sub_dir = $$_PRO_FILE_PWD_ +sub_dir ~= s,^$$re_escape($$PWD),, +IDE_BUILD_TREE = $$cleanPath($$OUT_PWD) +IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,, macx { IDE_APP_TARGET = QtCreator IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/bin/$${IDE_APP_TARGET}.app/Contents/PlugIns diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro index bf72fc08448..482aebee19e 100644 --- a/share/qtcreator/static.pro +++ b/share/qtcreator/static.pro @@ -1,5 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/../.. - include(../../qtcreator.pri) win32:i_flag = i diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro index 2021a405d8e..d404128cdf2 100644 --- a/share/qtcreator/translations/translations.pro +++ b/share/qtcreator/translations/translations.pro @@ -1,4 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/../../.. include(../../../qtcreator.pri) TRANSLATIONS = de ja diff --git a/src/app/app.pro b/src/app/app.pro index 31864cc8b7f..9db8d5949de 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -1,5 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/../.. - include(../../qtcreator.pri) include(../shared/qtsingleapplication/qtsingleapplication.pri) diff --git a/src/libs/utils/process_stub.pro b/src/libs/utils/process_stub.pro index 087e1063696..33cb63aa162 100644 --- a/src/libs/utils/process_stub.pro +++ b/src/libs/utils/process_stub.pro @@ -1,4 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/../../.. include(../../../qtcreator.pri) TEMPLATE = app diff --git a/src/plugins/debugger/dumper.pro b/src/plugins/debugger/dumper.pro index 1f2d5f279c2..9c99034187d 100644 --- a/src/plugins/debugger/dumper.pro +++ b/src/plugins/debugger/dumper.pro @@ -1,9 +1,9 @@ +include(../../qworkbenchlibrary.pri) TEMPLATE = lib TARGET = DebuggingHelper CONFIG += shared DESTDIR = ../../../bin -include(../../qworkbenchlibrary.pri) linux-* { CONFIG -= release diff --git a/src/qworkbenchlibrary.pri b/src/qworkbenchlibrary.pri index 7d260b6a4a7..fb92b5202a8 100644 --- a/src/qworkbenchlibrary.pri +++ b/src/qworkbenchlibrary.pri @@ -1,4 +1,3 @@ -IDE_BUILD_TREE = $$OUT_PWD/../../.. include(../qtcreator.pri) win32 { diff --git a/src/qworkbenchplugin.pri b/src/qworkbenchplugin.pri index a6143a9c77b..b644438fc75 100644 --- a/src/qworkbenchplugin.pri +++ b/src/qworkbenchplugin.pri @@ -1,6 +1,3 @@ -isEmpty(IDE_BUILD_TREE) { - IDE_BUILD_TREE = $$OUT_PWD/../../.. -} include(../qtcreator.pri) isEmpty(PROVIDER) { From e3885f280bc6b7d733cde47c490b275cac1ddcc4 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 16:18:05 +0200 Subject: [PATCH 19/22] use IDE_APP_PATH more, introduce IDE_LIBEXEC_PATH IDE_LIBEXEC_PATH is still the bindir, so it's kinda fake. oh, well. --- qtcreator.pri | 8 +++++--- src/app/app.pro | 2 +- src/libs/utils/process_stub.pro | 8 ++------ src/plugins/debugger/dumper.pro | 4 +++- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qtcreator.pri b/qtcreator.pri index abd82b2cb4e..5d4e4909710 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -38,11 +38,13 @@ sub_dir = $$_PRO_FILE_PWD_ sub_dir ~= s,^$$re_escape($$PWD),, IDE_BUILD_TREE = $$cleanPath($$OUT_PWD) IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,, +IDE_APP_PATH = $$IDE_BUILD_TREE/bin macx { IDE_APP_TARGET = QtCreator - IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/bin/$${IDE_APP_TARGET}.app/Contents/PlugIns + IDE_LIBRARY_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/PlugIns IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH - IDE_DATA_PATH = $$IDE_BUILD_TREE/bin/$${IDE_APP_TARGET}.app/Contents/Resources + IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources + IDE_DATA_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources contains(QT_CONFIG, ppc):CONFIG += ppc x86 } else { win32 { @@ -53,9 +55,9 @@ macx { } IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH/plugins + IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME IDE_DATA_PATH = $$IDE_BUILD_TREE/share/qtcreator } -IDE_APP_PATH = $$IDE_BUILD_TREE/bin INCLUDEPATH += \ $$IDE_SOURCE_TREE/src/libs \ diff --git a/src/app/app.pro b/src/app/app.pro index 9db8d5949de..3bb47607f0e 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -3,7 +3,7 @@ include(../shared/qtsingleapplication/qtsingleapplication.pri) TEMPLATE = app TARGET = $$IDE_APP_TARGET -DESTDIR = ../../bin +DESTDIR = $$IDE_APP_PATH SOURCES += main.cpp diff --git a/src/libs/utils/process_stub.pro b/src/libs/utils/process_stub.pro index 33cb63aa162..f87c13631e8 100644 --- a/src/libs/utils/process_stub.pro +++ b/src/libs/utils/process_stub.pro @@ -2,11 +2,7 @@ include(../../../qtcreator.pri) TEMPLATE = app TARGET = qtcreator_process_stub -macx { - DESTDIR = $$IDE_BUILD_TREE/bin/$${IDE_APP_TARGET}.app/Contents/Resources -} else { - DESTDIR = ../../../bin -} +DESTDIR = $$IDE_LIBEXEC_PATH CONFIG += warn_on console use_c_linker CONFIG -= qt app_bundle @@ -23,5 +19,5 @@ unix { LIBS += -lshell32 } -target.path = /bin +target.path = /bin # FIXME: libexec, more or less INSTALLS += target diff --git a/src/plugins/debugger/dumper.pro b/src/plugins/debugger/dumper.pro index 9c99034187d..896203a17c4 100644 --- a/src/plugins/debugger/dumper.pro +++ b/src/plugins/debugger/dumper.pro @@ -1,9 +1,11 @@ +# This is a compile check for the dumpers only. Don't install the library! + include(../../qworkbenchlibrary.pri) TEMPLATE = lib TARGET = DebuggingHelper CONFIG += shared -DESTDIR = ../../../bin +DESTDIR = $$IDE_LIBRARY_PATH # /tmp would be better in some respect ... linux-* { CONFIG -= release From 5562f71df6fbc27307cf65d114c59f5b29ce0ad9 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 16:38:58 +0200 Subject: [PATCH 20/22] simplify version check --- qtcreator.pro | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/qtcreator.pro b/qtcreator.pro index d6ee4e60365..7480776c2e8 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -1,7 +1,6 @@ #version check qt -TOO_OLD_LIST=$$find(QT_VERSION, ^4\.[0-4]) -count(TOO_OLD_LIST, 1) { - message("Cannot build the Qt Creator with a Qt version that old:" $$QT_VERSION) +contains(QT_VERSION, ^4\.[0-4]\..*) { + message("Cannot build Qt Creator with Qt version $$QT_VERSION.") error("Use at least Qt 4.5.") } From e47689449d4831fc54d2f6b1b47c376e1e8abec1 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 16:39:07 +0200 Subject: [PATCH 21/22] fix shadow build detection --- qtcreator.pri | 2 ++ qtcreator.pro | 3 ++- share/qtcreator/static.pro | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/qtcreator.pri b/qtcreator.pri index 5d4e4909710..205cdc607ed 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -46,6 +46,7 @@ macx { IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources IDE_DATA_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources contains(QT_CONFIG, ppc):CONFIG += ppc x86 + copydata = 1 } else { win32 { IDE_APP_TARGET = qtcreator @@ -57,6 +58,7 @@ macx { IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH/plugins IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME IDE_DATA_PATH = $$IDE_BUILD_TREE/share/qtcreator + !isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1 } INCLUDEPATH += \ diff --git a/qtcreator.pro b/qtcreator.pro index 7480776c2e8..eb58db0d528 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -4,10 +4,11 @@ contains(QT_VERSION, ^4\.[0-4]\..*) { error("Use at least Qt 4.5.") } +include(qtcreator.pri) include(doc/doc.pri) TEMPLATE = subdirs CONFIG += ordered SUBDIRS = src share -unix:!macx:!equals(_PRO_FILE_PWD_, $$OUT_PWD):SUBDIRS += bin +unix:!macx:!isEmpty(copydata):SUBDIRS += bin diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro index 482aebee19e..3c427429b0d 100644 --- a/share/qtcreator/static.pro +++ b/share/qtcreator/static.pro @@ -37,7 +37,7 @@ DATA_DIRS = \ schemes \ gdbmacros -macx|!equals(_PRO_FILE_PWD_, $$OUT_PWD) { +!isEmpty(copydata) { for(data_dir, DATA_DIRS) { files = $$files($$PWD/$$data_dir/*.*, true) From c1dc4394b01425bfc201d4d07aca0b3d89aa2364 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 6 May 2009 17:41:38 +0200 Subject: [PATCH 22/22] beautify installation of pluginspecs use the data copying custom compiler approach here, too. this leaves more work to qmake, which is good. on the upside, pluginspecs will be installed when they change without having force a re-link of the plugin itself. on the downside, installation of a pluginspec will force a re-link of the plugin. oh, well - you can't have it all (with qmake) ... --- qtcreator.pri | 14 ++++++++++++++ share/qtcreator/static.pro | 14 -------------- src/qworkbenchplugin.pri | 24 ++++++++---------------- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/qtcreator.pri b/qtcreator.pri index 205cdc607ed..0333eca6313 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -16,6 +16,19 @@ defineReplace(targetPath) { return($$1) } +# For use in custom compilers which just copy files +win32:i_flag = i +defineReplace(stripSrcDir) { + win32 { + !contains(1, ^.:.*):1 = $$OUT_PWD/$$1 + } else { + !contains(1, ^/.*):1 = $$OUT_PWD/$$1 + } + out = $$cleanPath($$1) + out ~= s|^$$re_escape($$PWD/)||$$i_flag + return($$out) +} + isEmpty(TEST):CONFIG(debug, debug|release) { !debug_and_release|build_pass { TEST = 1 @@ -49,6 +62,7 @@ macx { copydata = 1 } else { win32 { + contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1 IDE_APP_TARGET = qtcreator } else { IDE_APP_WRAPPER = qtcreator diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro index 3c427429b0d..eab552a5e7d 100644 --- a/share/qtcreator/static.pro +++ b/share/qtcreator/static.pro @@ -1,19 +1,5 @@ include(../../qtcreator.pri) -win32:i_flag = i -defineReplace(stripSrcDir) { - win32 { - !contains(1, ^.:.*):1 = $$OUT_PWD/$$1 - } else { - !contains(1, ^/.*):1 = $$OUT_PWD/$$1 - } - out = $$cleanPath($$1) - out ~= s|^$$re_escape($$PWD/)||$$i_flag - return($$out) -} - -contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1 - TEMPLATE = app TARGET = phony_target diff --git a/src/qworkbenchplugin.pri b/src/qworkbenchplugin.pri index b644438fc75..d65e94c747e 100644 --- a/src/qworkbenchplugin.pri +++ b/src/qworkbenchplugin.pri @@ -14,25 +14,17 @@ isEmpty(TARGET) { error("qworkbenchplugin.pri: You must provide a TARGET") } -# Copy the pluginspec file to the library directory. -# Note: On Windows/MinGW with some sh.exe in the path, -# QMAKE_COPY is some cp command that does not understand -# "\". Force the standard windows copy. -COPYDEST = $${DESTDIR} -COPYSRC = $${_PRO_FILE_PWD_}/$${TARGET}.pluginspec +PLUGINSPECS = $${_PRO_FILE_PWD_}/$${TARGET}.pluginspec +copy2build.input = PLUGINSPECS +copy2build.output = $$DESTDIR/${QMAKE_FUNC_FILE_IN_stripSrcDir} +isEmpty(vcproj):copy2build.variable_out = PRE_TARGETDEPS +copy2build.commands = $$QMAKE_COPY \"${QMAKE_FILE_IN}\" \"${QMAKE_FILE_OUT}\" +copy2build.name = COPY ${QMAKE_FILE_IN} +copy2build.CONFIG += no_link +QMAKE_EXTRA_COMPILERS += copy2build TARGET = $$qtLibraryTarget($$TARGET) -win32 { - COPYDEST ~= s|/+|\| - COPYSRC ~= s|/+|\| - COPY_CMD=xcopy /y -} else { - COPY_CMD=$${QMAKE_COPY} -} - -QMAKE_POST_LINK += $${COPY_CMD} $${COPYSRC} $${COPYDEST} - macx { QMAKE_LFLAGS_SONAME = -Wl,-install_name,@executable_path/../PlugIns/$${PROVIDER}/ } else:linux-* {