From 27c8563c451cb877b4b1610d78687e895c11edd7 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 21 Aug 2012 13:22:59 +0200 Subject: [PATCH 1/9] debugger: fix "accumulated" locals and expressions on Mac Change-Id: I922764db127242f1e392a2cb3906c61ba83c9b64 Reviewed-by: hjk --- src/plugins/debugger/gdb/classicgdbengine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp index bc227242aad..f7058b2d946 100644 --- a/src/plugins/debugger/gdb/classicgdbengine.cpp +++ b/src/plugins/debugger/gdb/classicgdbengine.cpp @@ -1238,6 +1238,9 @@ void GdbEngine::handleStackListLocalsClassic(const GdbResponse &response) frame.function, frame.file, frame.line, &uninitializedVariables); } + WatchHandler *handler = watchHandler(); + insertData(*handler->findData("local")); + foreach (const GdbMi &item, locals) { const WatchData data = localVariable(item, uninitializedVariables, &seen); if (data.isValid()) @@ -1252,7 +1255,7 @@ void GdbEngine::handleStackListLocalsClassic(const GdbResponse &response) insertData(rd); } - watchHandler()->updateWatchers(); + handler->updateWatchers(); } static void showQtDumperLibraryWarning(const QString &details) From 7dc7907cb830a7e0a65a11aaf4165bb51b9d6c06 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 30 Aug 2012 13:44:37 +0200 Subject: [PATCH 2/9] Work around kde file dialog being broken Task-number: QTCREATORBUG-7771 Change-Id: I11a41f624dbeddbbff75e2b3a827315d26995425 Reviewed-by: Frederik Gladhorn --- src/plugins/qtsupport/qtoptionspage.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index d677d1020b1..70f8b08eda9 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -622,6 +622,11 @@ static QString filterForQmakeFileDialog() filter += QLatin1Char('*'); #endif filter += commands.at(i); +#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) + // kde bug, we need at least one wildcard character + // see QTCREATORBUG-7771 + filter += QLatin1Char('*'); +#endif } filter += QLatin1Char(')'); return filter; From 92113a8bb59aaab801e608e0c03216a08b08f9fb Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 31 Aug 2012 11:33:23 +0200 Subject: [PATCH 3/9] Doc: Tool Chain tab was renamed as Compiler tab Fields were also renamed accordingly. Change-Id: I2f2658cdca2293c10c73d967fe66d520cb6de4d0 Reviewed-by: Christian Kandeler --- doc/images/qtcreator-cmakeexecutable.png | Bin 3949 -> 3517 bytes doc/images/qtcreator-qt4-qtversions-add.png | Bin 11952 -> 14438 bytes .../qtcreator-run-settings-linux-devices.png | Bin 15007 -> 14989 bytes doc/images/qtcreator-targets.png | Bin 14163 -> 14117 bytes doc/images/qtcreator-toolchains.png | Bin 12063 -> 12744 bytes doc/src/linux-mobile/linuxdev.qdoc | 24 ++++++++---------- .../projects/creator-projects-opening.qdoc | 2 +- .../projects/creator-projects-targets.qdoc | 6 ++--- 8 files changed, 14 insertions(+), 18 deletions(-) diff --git a/doc/images/qtcreator-cmakeexecutable.png b/doc/images/qtcreator-cmakeexecutable.png index 70265cd23042d1334df86f6ea0d1eb1a4abc3b7f..1f2244f588150298b039c69b045df08e892b7305 100644 GIT binary patch delta 3510 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 diff --git a/doc/images/qtcreator-qt4-qtversions-add.png b/doc/images/qtcreator-qt4-qtversions-add.png index 2857a28bd814e2f9cddf40beac762c74a7b717a8..6c7c201c18044c0d786a5d4e191a212bc849f826 100644 GIT binary patch literal 14438 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 literal 11952 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 P7#KWV{an^LB{Ts5#uG^( diff --git a/doc/images/qtcreator-run-settings-linux-devices.png b/doc/images/qtcreator-run-settings-linux-devices.png index 533b51fa7605f4645970b338d61e77576a2e62c5..47be61e81a3ed2854314f05de0935bf6c692840a 100644 GIT binary patch literal 14989 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 Oz~JfX=d#Wzp$P!}$P)zs literal 15007 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 diff --git a/doc/images/qtcreator-toolchains.png b/doc/images/qtcreator-toolchains.png index 8f38f27369d436448ba00d4d5984ec36e74794a8..0d4f8c854d27865851b33a653534a8e9451aa115 100644 GIT binary patch literal 12744 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 hZFzCj$cmgQu&X%Q~loCIBOw=&}F+ literal 12063 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 diff --git a/doc/src/linux-mobile/linuxdev.qdoc b/doc/src/linux-mobile/linuxdev.qdoc index 30edb8535e4..96050276068 100644 --- a/doc/src/linux-mobile/linuxdev.qdoc +++ b/doc/src/linux-mobile/linuxdev.qdoc @@ -47,7 +47,8 @@ either a password or an SSH key. If you do not have an SSH key, you can create it in \QC. For more information, see \l {Generating SSH Keys}. - To configure connections between \QC and embedded Linux devices: + To configure connections between \QC and an embedded Linux device and to + specify build and run settings for the device: \list 1 @@ -90,6 +91,10 @@ \endlist + \o Select \gui Tools > \gui Options > \gui {Build & Run} > \gui Targets + > \gui Add to add a target for building for the device. Select the + Qt version, compiler, and device that you added above. + \o To specify build settings: \list 1 @@ -97,26 +102,17 @@ \o Open a project for an application you want to develop for the device. - \o Select \gui {Projects > Desktop > Build}. + \o Select \gui {Projects > Targets > Add}. - \o Select the Qt version and tool chain for the embedded Linux - device. + \o Select the target that you added above. \endlist - \o To specify run settings: - - \list 1 - - \o Select \gui {Run > Add > Deploy to Remote Linux Host} - to add a new deploy configuration. + \o To specify run settings, select \gui Run. \image qtcreator-run-settings-linux-devices.png "Run settings for embedded Linux devices" - \o In the \gui {Device configuration} field, select the device - connection. - - \endlist + Usually, you can use the default settings. When you run the project, \QC deploys the application as specified by the deploy steps. By default, \QC copies the application files to the device. diff --git a/doc/src/projects/creator-projects-opening.qdoc b/doc/src/projects/creator-projects-opening.qdoc index dd825a89a28..6d30ba4f4d3 100644 --- a/doc/src/projects/creator-projects-opening.qdoc +++ b/doc/src/projects/creator-projects-opening.qdoc @@ -47,7 +47,7 @@ \image qtcreator-open-project-targets.png "Configure Project tab" Even if you do not intend to build the project, the C++ and QML code models - need a Qt version and tool chain to offer code completion. To specify them, + need a Qt version and compiler to offer code completion. To specify them, select the \gui Options link, or select \gui {Tools > Options > Build & Run > Targets}. diff --git a/doc/src/projects/creator-projects-targets.qdoc b/doc/src/projects/creator-projects-targets.qdoc index 34005fa0af4..6cadd5cdbb1 100644 --- a/doc/src/projects/creator-projects-targets.qdoc +++ b/doc/src/projects/creator-projects-targets.qdoc @@ -33,7 +33,7 @@ \QC groups platform specific settings as \e targets to make cross-platform development easier. Each target consists of a set of values that define one - environment, such as a device, tool chain, Qt version, and debugger command + environment, such as a device, compiler, Qt version, and debugger command to use, and some metadata, such as an icon and a name for the target. Once you have defined targets, you can select them to build and run projects. @@ -85,8 +85,8 @@ image is located. If you are not cross-compiling, leave this field empty. - \o In the \gui {Tool chain} field, select the tool chain required - to build the project. You can add tool chains to the list + \o In the \gui {Compiler} field, select the compiler required + to build the project. You can add compilers to the list if they are installed on the development PC, but were not detected automatically. For more information, see \l{Adding Compilers}. From 7f44d7b2ae23d59fc132ec056e07d2e67a38d33f Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 31 Aug 2012 16:01:19 +0200 Subject: [PATCH 4/9] Small compile fix for Qt 5/gccc. Change-Id: I3bc3608f437e377f60fbf28ded950e3118ce69c4 Reviewed-by: Friedemann Kleint --- src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h index c91c36d4a3e..f3efc8010d5 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h @@ -32,6 +32,7 @@ #define QMLPROJECTITEM_H #include +#include #include #include From 89cfba79b2b463c7e0ca686a75949ebc936bd566 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 24 Aug 2012 16:29:09 +0200 Subject: [PATCH 5/9] zeroconf: Compile fix for MinGW Change-Id: I08120e945fea6455ea109926b9b0a95406d078da Reviewed-by: Friedemann Kleint --- src/libs/zeroconf/embed/CommonServices.h | 20 ----------------- src/libs/zeroconf/embed/dnssd_clientstub.c | 26 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/libs/zeroconf/embed/CommonServices.h b/src/libs/zeroconf/embed/CommonServices.h index bf878faeee9..d0b9e870872 100644 --- a/src/libs/zeroconf/embed/CommonServices.h +++ b/src/libs/zeroconf/embed/CommonServices.h @@ -745,26 +745,6 @@ typedef long long int64_t; typedef unsigned long long uint64_t; #endif - - typedef int8_t int_least8_t; - typedef int16_t int_least16_t; - typedef int32_t int_least32_t; - typedef int64_t int_least64_t; - - typedef uint8_t uint_least8_t; - typedef uint16_t uint_least16_t; - typedef uint32_t uint_least32_t; - typedef uint64_t uint_least64_t; - - typedef int8_t int_fast8_t; - typedef int16_t int_fast16_t; - typedef int32_t int_fast32_t; - typedef int64_t int_fast64_t; - - typedef uint8_t uint_fast8_t; - typedef uint16_t uint_fast16_t; - typedef uint32_t uint_fast32_t; - typedef uint64_t uint_fast64_t; #if (( !defined( _MSC_VER ) || TARGET_OS_WINDOWS_CE ) && !defined( _WIN32 ) ) typedef long int intptr_t; diff --git a/src/libs/zeroconf/embed/dnssd_clientstub.c b/src/libs/zeroconf/embed/dnssd_clientstub.c index b09fc414e48..d70bb2d28d2 100644 --- a/src/libs/zeroconf/embed/dnssd_clientstub.c +++ b/src/libs/zeroconf/embed/dnssd_clientstub.c @@ -79,9 +79,33 @@ namespace ZeroConf { namespace embeddedLib { DWORD err = WSAGetLastError(); (void) priority; va_start( args, message ); + #ifdef _MSC_VER len = _vscprintf( message, args ) + 1; buffer = reinterpret_cast(malloc( len * sizeof(char) )); - if ( buffer ) { vsprintf( buffer, message, args ); OutputDebugStringA( buffer ); free( buffer ); } + if ( buffer ) { + vsprintf(buffer, message, args); + OutputDebugStringA(buffer); + free(buffer); + } + #else // MinGW 4.4, no longer required for 4.6 + len = vsnprintf(NULL, 0, message, args); + va_end(args); + if (len == -1) // encoding error + return; + buffer = reinterpret_cast(malloc((len + 1) * sizeof(char))); + if (buffer == NULL) // no memory allocation possible + return; + va_start(args, message); + len = vsnprintf(buffer, (len + 1) * sizeof(char), message, args); + va_end(args); + if (len == -1) { // encoding error + free(buffer); + return; + } else { + OutputDebugStringA(buffer); + free(buffer); + } + #endif WSASetLastError( err ); } }} From 0cb8c463287fcd74767af377dcc895bf8c848c0a Mon Sep 17 00:00:00 2001 From: Yuchen Deng Date: Fri, 31 Aug 2012 23:06:08 +0800 Subject: [PATCH 6/9] Fix cross compiling for CMake based project On Linux/Unix, there does not exist "MinGW Makefiles" generator. Using "Unix Makefiles" can simply fixed the issue on Linux. And does not effect Windows builds. Change-Id: Id69e1a24485fbab05866f52d823035abc1dca06b Reviewed-by: Daniel Teske --- .../cmakeprojectmanager/cmakeopenprojectwizard.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp index 12e008bb414..7807dee197e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp @@ -423,8 +423,14 @@ void CMakeRunPage::initializePage() if (hasCodeBlocksGenerator && (cachedGenerator.isEmpty() || cachedGenerator == "NMake Makefiles")) m_generatorComboBox->addItem(tr("NMake Generator (%1)").arg(p->displayName()), profileVariant); } else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { +#ifdef Q_OS_WIN if (cachedGenerator.isEmpty() || cachedGenerator == "MinGW Makefiles") m_generatorComboBox->addItem(tr("MinGW Generator (%1)").arg(p->displayName()), profileVariant); +#else + if (cachedGenerator.isEmpty() || cachedGenerator == "Unix Makefiles") + m_generatorComboBox->addItem(tr("Unix Generator (%1)").arg(p->displayName()), profileVariant); +#endif + } } else { // Non windows @@ -460,7 +466,11 @@ void CMakeRunPage::runCMake() QString generator = QLatin1String("-GCodeBlocks - Unix Makefiles"); if (tc->targetAbi().os() == ProjectExplorer::Abi::WindowsOS) { if (tc->targetAbi().osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) +#ifdef Q_OS_WIN generator = QLatin1String("-GCodeBlocks - MinGW Makefiles"); +#else + generator = QLatin1String("-GCodeBlocks - Unix Makefiles"); +#endif else generator = QLatin1String("-GCodeBlocks - NMake Makefiles"); } From a37eca63b61360c509c7dbe287fec88b281d1c56 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 28 Aug 2012 18:54:29 +0200 Subject: [PATCH 7/9] Squish: Added Qt Simulator target Change-Id: I367dc2fb71339a335700d7411465b16ec114a7eb Reviewed-by: Christian Stenger --- .../unix/Nokia/qtcreator/profiles.xml | 22 +++++++++++++++++-- .../windows/Nokia/qtcreator/profiles.xml | 22 +++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/tests/system/settings/unix/Nokia/qtcreator/profiles.xml b/tests/system/settings/unix/Nokia/qtcreator/profiles.xml index 4aec8bfea37..b3a3a5e5620 100644 --- a/tests/system/settings/unix/Nokia/qtcreator/profiles.xml +++ b/tests/system/settings/unix/Nokia/qtcreator/profiles.xml @@ -1,6 +1,6 @@ - + Profile.0 @@ -20,9 +20,27 @@ Desktop + + Profile.1 + + false + + /usr/bin/gdb + Desktop Device + Desktop + + ProjectExplorer.ToolChain.Gcc:{c3f59b87-6997-4bd8-8067-ee04dc536371} + + 5 + + :///DESKTOP/// + {68d379f6-357c-42a6-83c6-7743840db4ea} + Qt Simulator + + Profile.Count - 1 + 2 Profile.Default diff --git a/tests/system/settings/windows/Nokia/qtcreator/profiles.xml b/tests/system/settings/windows/Nokia/qtcreator/profiles.xml index f1fbebce1a0..f7fde15dea3 100644 --- a/tests/system/settings/windows/Nokia/qtcreator/profiles.xml +++ b/tests/system/settings/windows/Nokia/qtcreator/profiles.xml @@ -1,6 +1,6 @@ - + Profile.0 @@ -20,9 +20,27 @@ Desktop + + Profile.1 + + false + + C:/QtSDK/pythongdb/python_2.7based/gdb-i686-pc-mingw32.exe + Desktop Device + Desktop + + ProjectExplorer.ToolChain.Mingw:{2729dd3e-84f5-42e1-aed1-6a27163346ce} + + 9 + + :///DESKTOP/// + {0ce9f69f-0f60-4b04-8691-c328ee5bfe14} + Qt Simulator + + Profile.Count - 1 + 2 Profile.Default From 6886e485de59bc1fe1fe84ca6c1fb1263b18420b Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 31 Aug 2012 11:34:27 +0200 Subject: [PATCH 8/9] Handle watching/tooltips of C++ editor tokens consistently. For editor tooltips and the editor context menu 'Watch expression', always try to find a local variable first and use its expression. Change the tooltip manager/widgets not to rely on the debugger model enum and obscure expression, filter by complete iname instead. Remove obsolete enumeration. Change gdb's handling of tooltips such that local variables are displayed immediately without creating additional tooltip items. Change-Id: I9b55823428029ba50d84d3a8cab55eb58942e72b Reviewed-by: hjk --- src/plugins/debugger/cdb/cdbengine.cpp | 32 +++++---- src/plugins/debugger/cdb/cdbengine.h | 1 + src/plugins/debugger/debuggerplugin.cpp | 7 +- .../debugger/debuggertooltipmanager.cpp | 69 ++++++++----------- src/plugins/debugger/debuggertooltipmanager.h | 15 ++-- src/plugins/debugger/gdb/gdbengine.cpp | 45 ++++++++---- src/plugins/debugger/gdb/pythongdbengine.cpp | 36 +++++++--- src/plugins/debugger/watchhandler.cpp | 18 ++++- src/plugins/debugger/watchhandler.h | 12 +--- src/plugins/debugger/watchwindow.cpp | 9 ++- src/plugins/debugger/watchwindow.h | 1 + 11 files changed, 148 insertions(+), 97 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 323ae8ca2eb..d0977db14c6 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -404,6 +404,7 @@ void CdbEngine::init() m_sourceStepInto = false; m_watchPointX = m_watchPointY = 0; m_ignoreCdbOutput = false; + m_watchInameToName.clear(); m_outputBuffer.clear(); m_builtinCommandQueue.clear(); @@ -470,23 +471,13 @@ bool CdbEngine::setToolTipExpression(const QPoint &mousePos, // Are we in the current stack frame if (context.function.isEmpty() || exp.isEmpty() || context.function != stackHandler()->currentFrame().function) return false; - // No numerical or any other expressions [yet] - if (!(exp.at(0).isLetter() || exp.at(0) == QLatin1Char('_'))) + // Show tooltips of local variables only. Anything else can slow debugging down. + const WatchData *localVariable = watchHandler()->findCppLocalVariable(exp); + if (!localVariable) return false; - // Can this be found as a local variable? - const QByteArray localsPrefix(localsPrefixC); - QByteArray iname = localsPrefix + exp.toAscii(); - if (!watchHandler()->hasItem(iname)) { - // Nope, try a 'local.this.m_foo'. - exp.prepend(QLatin1String("this.")); - iname.insert(localsPrefix.size(), "this."); - if (!watchHandler()->hasItem(iname)) - return false; - } DebuggerToolTipWidget *tw = new DebuggerToolTipWidget; tw->setContext(context); - tw->setDebuggerModel(LocalsType); - tw->setExpression(exp); + tw->setIname(localVariable->iname); tw->acquireEngine(this); DebuggerToolTipManager::instance()->showToolTip(mousePos, editor, tw); return true; @@ -995,6 +986,10 @@ void CdbEngine::updateWatchData(const WatchData &dataIn, QByteArray args; ByteArrayInputStream str(args); str << dataIn.iname << " \"" << dataIn.exp << '"'; + // Store the name since the CDB extension library + // does not maintain the names of watches. + if (!dataIn.name.isEmpty() && dataIn.name != QLatin1String(dataIn.exp)) + m_watchInameToName.insert(dataIn.iname, dataIn.name); postExtensionCommand("addwatch", args, 0, &CdbEngine::handleAddWatch, 0, qVariantFromValue(dataIn)); @@ -1916,6 +1911,15 @@ void CdbEngine::handleLocals(const CdbExtensionCommandPtr &reply) dummy.name = QLatin1String(child.findChild("name").data()); parseWatchData(watchHandler()->expandedINames(), dummy, child, &watchData); } + // Fix the names of watch data. + for (int i =0; i < watchData.size(); ++i) { + if (watchData.at(i).iname.startsWith('w')) { + const QHash::const_iterator it + = m_watchInameToName.find(watchData.at(i).iname); + if (it != m_watchInameToName.constEnd()) + watchData[i].name = it.value(); + } + } watchHandler()->insertData(watchData); if (debugLocals) { QDebug nsp = qDebug().nospace(); diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h index f4e0e04f1a4..07f98401e0a 100644 --- a/src/plugins/debugger/cdb/cdbengine.h +++ b/src/plugins/debugger/cdb/cdbengine.h @@ -275,6 +275,7 @@ private: PendingBreakPointMap m_pendingBreakpointMap; QHash m_fileNameModuleHash; QMultiHash m_symbolAddressCache; + QHash m_watchInameToName; bool m_ignoreCdbOutput; QVariantList m_customSpecialStopData; QList m_sourcePathMappings; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index bfabcfcd59b..3d6603fb5e0 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1143,7 +1143,12 @@ public slots: exp = fixCppExpression(exp); if (exp.isEmpty()) return; - currentEngine()->watchHandler()->watchExpression(exp); + const QString name = exp; + // Prefer to watch an existing local variable by its expression (address) if it can be found. + WatchHandler *watchHandler = currentEngine()->watchHandler(); + if (const WatchData *localVariable = watchHandler->findCppLocalVariable(exp)) + exp = QLatin1String(localVariable->exp); + watchHandler->watchExpression(exp, name); } void handleExecExit() diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp index fcdf0882c81..d6c956250ed 100644 --- a/src/plugins/debugger/debuggertooltipmanager.cpp +++ b/src/plugins/debugger/debuggertooltipmanager.cpp @@ -98,8 +98,8 @@ static const char offsetYAttributeC[] = "offset_y"; static const char engineTypeAttributeC[] = "engine"; static const char dateAttributeC[] = "date"; static const char treeElementC[] = "tree"; -static const char treeModelAttributeC[] = "model"; // Locals/Watches -static const char treeExpressionAttributeC[] = "expression"; // Locals/Watches +static const char treeExpressionAttributeC[] = "expression"; +static const char treeInameAttributeC[] = "iname"; static const char modelElementC[] = "model"; static const char modelColumnCountAttributeC[] = "columncount"; static const char modelRowElementC[] = "row"; @@ -615,7 +615,6 @@ DebuggerToolTipWidget::DebuggerToolTipWidget(QWidget *parent) : m_titleLabel(new DraggableLabel), m_engineAcquired(false), m_creationDate(QDate::currentDate()), - m_debuggerModel(TooltipType), m_treeView(new DebuggerToolTipTreeView), m_defaultModel(new QStandardItemModel(this)) { @@ -836,11 +835,7 @@ void DebuggerToolTipWidget::saveSessionData(QXmlStreamWriter &w) const /*! \class Debugger::Internal::TooltipFilterModel - \brief Model for tooltips filtering a local variable using the locals or tooltip model, - matching on the name. - - Expressions/names can either be flat ('foo' will match at the root level) - or nested ('this.m_foo' will match 'this' at root level and 'm_foo' at level 1). + \brief Model for tooltips filtering an item on the watchhandler matching its tree on the iname. In addition, suppress the model's tooltip data to avoid a tooltip on a tooltip. */ @@ -848,9 +843,8 @@ void DebuggerToolTipWidget::saveSessionData(QXmlStreamWriter &w) const class TooltipFilterModel : public QSortFilterProxyModel { public: - TooltipFilterModel(QAbstractItemModel *model, const QString &exp, int debuggerModel) : - m_expressions(exp.split(QLatin1Char('.'))), - m_debuggerModel(debuggerModel) + TooltipFilterModel(QAbstractItemModel *model, const QByteArray &iname) + : m_iname(iname) { setSourceModel(model); } @@ -864,27 +858,21 @@ public: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; private: - const QStringList m_expressions; - int m_debuggerModel; + const QByteArray m_iname; }; +static bool isSubIname(const QByteArray &haystack, const QByteArray &needle) +{ + return haystack.size() > needle.size() + && haystack.startsWith(needle) + && haystack.at(needle.size()) == '.'; +} + bool TooltipFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { const QModelIndex nameIndex = sourceModel()->index(sourceRow, 0, sourceParent); - QByteArray iname = nameIndex.data(LocalsINameRole).toByteArray(); - if (m_debuggerModel == LocalsType && !iname.startsWith("local")) - return false; - if (m_debuggerModel == TooltipType && !iname.startsWith("tooltip")) - return false; - // Match on expression for top level, else pass through. - const int depth = iname.count('.'); - if (depth == 0) - return true; - if (depth > m_expressions.size()) - return true; - const QString name = nameIndex.data().toString(); - //const QString exp = nameIndex.data(LocalsExpressionRole).toString(); - return name == m_expressions.at(depth - 1); + const QByteArray iname = nameIndex.data(LocalsINameRole).toByteArray(); + return iname == m_iname || isSubIname(iname, m_iname) || isSubIname(m_iname, iname); } /*! @@ -991,7 +979,7 @@ void DebuggerToolTipWidget::doAcquireEngine(DebuggerEngine *engine) // Create a filter model on the debugger's model and switch to it. QAbstractItemModel *model = engine->watchModel(); TooltipFilterModel *filterModel = - new TooltipFilterModel(model, m_expression, m_debuggerModel); + new TooltipFilterModel(model, m_iname); swapModel(filterModel); } @@ -1000,7 +988,7 @@ QAbstractItemModel *DebuggerToolTipWidget::swapModel(QAbstractItemModel *newMode QAbstractItemModel *oldModel = m_treeView->swapModel(newModel); // When looking at some 'this.m_foo.x', expand all items if (newModel) { - if (const int level = m_expression.count(QLatin1Char('.')) + 1) { + if (const int level = m_iname.count('.')) { QModelIndex index = newModel->index(0, 0); for (int i = 0; i < level && index.isValid(); i++, index = index.child(0, 0)) m_treeView->setExpanded(index, true); @@ -1062,8 +1050,9 @@ void DebuggerToolTipWidget::doSaveSessionData(QXmlStreamWriter &w) const { w.writeStartElement(QLatin1String(treeElementC)); QXmlStreamAttributes attributes; - attributes.append(QLatin1String(treeModelAttributeC), QString::number(m_debuggerModel)); - attributes.append(QLatin1String(treeExpressionAttributeC), m_expression); + if (!m_expression.isEmpty()) + attributes.append(QLatin1String(treeExpressionAttributeC), m_expression); + attributes.append(QLatin1String(treeInameAttributeC), QLatin1String(m_iname)); w.writeAttributes(attributes); if (QAbstractItemModel *model = m_treeView->model()) { XmlWriterTreeModelVisitor v(model, w); @@ -1078,11 +1067,11 @@ void DebuggerToolTipWidget::doLoadSessionData(QXmlStreamReader &r) return; // Restore data to default model and show that. const QXmlStreamAttributes attributes = r.attributes(); - m_debuggerModel = attributes.value(QLatin1String(treeModelAttributeC)).toString().toInt(); + m_iname = attributes.value(QLatin1String(treeInameAttributeC)).toString().toLatin1(); m_expression = attributes.value(QLatin1String(treeExpressionAttributeC)).toString(); if (debugToolTips) - qDebug() << "DebuggerTreeViewToolTipWidget::doLoadSessionData() " << m_debuggerModel << m_expression; - setObjectName(QLatin1String("DebuggerTreeViewToolTipWidget: ") + m_expression); + qDebug() << "DebuggerTreeViewToolTipWidget::doLoadSessionData() " << m_debuggerModel << m_iname; + setObjectName(QLatin1String("DebuggerTreeViewToolTipWidget: ") + QLatin1String(m_iname)); restoreTreeModel(r, m_defaultModel); r.readNext(); // Skip m_treeView->swapModel(m_defaultModel); @@ -1480,14 +1469,16 @@ void DebuggerToolTipManager::slotTooltipOverrideRequested(ITextEditor *editor, qDebug() << " &tw, m_tooltips) { if (!tw.isNull() && tw->matches(fileName, engineType, function)) - rc.push_back(tw->expression()); + rc.push_back(ExpressionInamePair(tw->expression(), tw->iname())); } if (debugToolTips) qDebug() << "DebuggerToolTipManager::treeWidgetExpressions" diff --git a/src/plugins/debugger/debuggertooltipmanager.h b/src/plugins/debugger/debuggertooltipmanager.h index b31a8ed6abe..f503dc63b74 100644 --- a/src/plugins/debugger/debuggertooltipmanager.h +++ b/src/plugins/debugger/debuggertooltipmanager.h @@ -119,8 +119,9 @@ public: static DebuggerToolTipWidget *loadSessionData(QXmlStreamReader &r); - int debuggerModel() const { return m_debuggerModel; } - void setDebuggerModel(int m) { m_debuggerModel = m; } + QByteArray iname() const { return m_iname; } + void setIname(const QByteArray &e) { m_iname = e; } + QString expression() const { return m_expression; } void setExpression(const QString &e) { m_expression = e; } @@ -166,6 +167,7 @@ private: int m_debuggerModel; QString m_expression; + QByteArray m_iname; DebuggerToolTipTreeView *m_treeView; QStandardItemModel *m_defaultModel; @@ -196,6 +198,9 @@ class DebuggerToolTipManager : public QObject Q_OBJECT public: + typedef QPair ExpressionInamePair; + typedef QList ExpressionInamePairs; + explicit DebuggerToolTipManager(QObject *parent = 0); virtual ~DebuggerToolTipManager(); @@ -204,9 +209,9 @@ public: bool hasToolTips() const { return !m_tooltips.isEmpty(); } // Collect all expressions of DebuggerTreeViewToolTipWidget - QStringList treeWidgetExpressions(const QString &fileName, - const QString &engineType = QString(), - const QString &function= QString()) const; + ExpressionInamePairs treeWidgetExpressions(const QString &fileName, + const QString &engineType = QString(), + const QString &function= QString()) const; void showToolTip(const QPoint &p, Core::IEditor *editor, DebuggerToolTipWidget *); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 9a4ddc4a901..fa6ed8c3d98 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -117,6 +117,7 @@ public: QPoint mousePosition; QString expression; + QByteArray iname; Core::IEditor *editor; }; @@ -3844,22 +3845,19 @@ void GdbEngine::showToolTip() if (m_toolTipContext.isNull()) return; const QString expression = m_toolTipContext->expression; - const QByteArray iname = tooltipIName(m_toolTipContext->expression); if (DebuggerToolTipManager::debug()) - qDebug() << "GdbEngine::showToolTip " << expression << iname << (*m_toolTipContext); + qDebug() << "GdbEngine::showToolTip " << expression << m_toolTipContext->iname << (*m_toolTipContext); - if (!debuggerCore()->boolSetting(UseToolTipsInMainEditor)) { - watchHandler()->removeData(iname); + if (m_toolTipContext->iname.startsWith("tooltip") + && (!debuggerCore()->boolSetting(UseToolTipsInMainEditor) + || !watchHandler()->isValidToolTip(m_toolTipContext->iname))) { + watchHandler()->removeData(m_toolTipContext->iname); return; } - if (!watchHandler()->isValidToolTip(iname)) { - watchHandler()->removeData(iname); - return; - } DebuggerToolTipWidget *tw = new DebuggerToolTipWidget; - tw->setDebuggerModel(TooltipType); - tw->setExpression(expression); + tw->setIname(m_toolTipContext->iname); + tw->setExpression(m_toolTipContext->expression); tw->setContext(*m_toolTipContext); tw->acquireEngine(this); DebuggerToolTipManager::instance()->showToolTip(m_toolTipContext->mousePosition, @@ -3890,12 +3888,22 @@ bool GdbEngine::setToolTipExpression(const QPoint &mousePos, DebuggerToolTipContext context = contextIn; int line, column; - const QString exp = fixCppExpression(cppExpressionAt(editor, context.position, &line, &column, &context.function)); - if (DebuggerToolTipManager::debug()) - qDebug() << "GdbEngine::setToolTipExpression1 " << exp << context; + QString exp = fixCppExpression(cppExpressionAt(editor, context.position, &line, &column, &context.function)); if (exp.isEmpty()) return false; + // Prefer a filter on an existing local variable if it can be found. + QByteArray iname; + if (const WatchData *localVariable = watchHandler()->findCppLocalVariable(exp)) { + exp = QLatin1String(localVariable->exp); + iname = localVariable->iname; + } else { + iname = tooltipIName(exp); + } + if (DebuggerToolTipManager::debug()) + qDebug() << "GdbEngine::setToolTipExpression1 " << exp << iname << context; + + // Same expression: Display synchronously. if (!m_toolTipContext.isNull() && m_toolTipContext->expression == exp) { showToolTip(); return true; @@ -3904,7 +3912,14 @@ bool GdbEngine::setToolTipExpression(const QPoint &mousePos, m_toolTipContext.reset(new GdbToolTipContext(context)); m_toolTipContext->mousePosition = mousePos; m_toolTipContext->expression = exp; + m_toolTipContext->iname = iname; m_toolTipContext->editor = editor; + // Local variable: Display synchronously. + if (iname.startsWith("local")) { + showToolTip(); + return true; + } + if (DebuggerToolTipManager::debug()) qDebug() << "GdbEngine::setToolTipExpression2 " << exp << (*m_toolTipContext); @@ -3912,13 +3927,13 @@ bool GdbEngine::setToolTipExpression(const QPoint &mousePos, UpdateParameters params; params.tryPartial = true; params.tooltipOnly = true; - params.varList = tooltipIName(exp); + params.varList = iname; updateLocalsPython(params); } else { WatchData toolTip; toolTip.exp = exp.toLatin1(); toolTip.name = exp; - toolTip.iname = tooltipIName(exp); + toolTip.iname = iname; watchHandler()->insertData(toolTip); } return true; diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index df6da0ad1fe..920c8c6e743 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -64,17 +64,35 @@ void GdbEngine::updateLocalsPython(const UpdateParameters ¶ms) const QString fileName = stackHandler()->currentFrame().file; const QString function = stackHandler()->currentFrame().function; if (!fileName.isEmpty()) { - QStringList expressions = DebuggerToolTipManager::instance() + typedef DebuggerToolTipManager::ExpressionInamePair ExpressionInamePair; + typedef DebuggerToolTipManager::ExpressionInamePairs ExpressionInamePairs; + + // Re-create tooltip items that are not filters on existing local variables in + // the tooltip model. + ExpressionInamePairs toolTips = DebuggerToolTipManager::instance() ->treeWidgetExpressions(fileName, objectName(), function); + const QString currentExpression = tooltipExpression(); - if (!currentExpression.isEmpty() && !expressions.contains(currentExpression)) - expressions.push_back(currentExpression); - foreach (const QString &te, expressions) { - if (!watchers.isEmpty()) - watchers += "##"; - watchers += te.toLatin1(); - watchers += '#'; - watchers += tooltipIName(te); + if (!currentExpression.isEmpty()) { + int currentIndex = -1; + for (int i = 0; i < toolTips.size(); ++i) { + if (toolTips.at(i).first == currentExpression) { + currentIndex = i; + break; + } + } + if (currentIndex < 0) + toolTips.push_back(ExpressionInamePair(currentExpression, tooltipIName(currentExpression))); + } + + foreach (const ExpressionInamePair &p, toolTips) { + if (p.second.startsWith("tooltip")) { + if (!watchers.isEmpty()) + watchers += "##"; + watchers += p.first.toLatin1(); + watchers += '#'; + watchers += p.second; + } } } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index fb1cdf29d7b..966bf8c8651 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1550,7 +1550,7 @@ QByteArray WatchHandler::watcherName(const QByteArray &exp) return "watch." + QByteArray::number(theWatcherNames[exp]); } -void WatchHandler::watchExpression(const QString &exp) +void WatchHandler::watchExpression(const QString &exp, const QString &name) { QTC_ASSERT(m_engine, return); // Do not insert the same entry more then once. @@ -1560,7 +1560,7 @@ void WatchHandler::watchExpression(const QString &exp) // FIXME: 'exp' can contain illegal characters WatchData data; data.exp = exp.toLatin1(); - data.name = exp; + data.name = name.isEmpty() ? exp : name; theWatcherNames[data.exp] = m_watcherCounter++; saveWatchers(); @@ -1794,6 +1794,20 @@ const WatchData *WatchHandler::findData(const QByteArray &iname) const return m_model->findItem(iname); } +const WatchData *WatchHandler::findCppLocalVariable(const QString &name) const +{ + // Can this be found as a local variable? + const QByteArray localsPrefix("local."); + QByteArray iname = localsPrefix + name.toLatin1(); + if (const WatchData *wd = findData(iname)) + return wd; + // Nope, try a 'local.this.m_foo'. + iname.insert(localsPrefix.size(), "this."); + if (const WatchData *wd = findData(iname)) + return wd; + return 0; +} + QString WatchHandler::displayForAutoTest(const QByteArray &iname) const { return m_model->displayForAutoTest(iname); diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h index bcd243e91fd..b8b2648b09f 100644 --- a/src/plugins/debugger/watchhandler.h +++ b/src/plugins/debugger/watchhandler.h @@ -58,15 +58,6 @@ public: typedef QHash TypeFormats; -enum WatchType -{ - LocalsType, - InspectType, - WatchersType, - ReturnType, - TooltipType -}; - enum IntegerFormat { DecimalFormat = 0, // Keep that at 0 as default. @@ -86,7 +77,7 @@ public: QAbstractItemModel *model() const; void cleanup(); - void watchExpression(const QString &exp); + void watchExpression(const QString &exp, const QString &name = QString()); Q_SLOT void clearWatches(); void updateWatchers(); // Called after locals are fetched @@ -95,6 +86,7 @@ public: const WatchData *watchData(const QModelIndex &) const; const WatchData *findData(const QByteArray &iname) const; + const WatchData *findCppLocalVariable(const QString &name) const; QString displayForAutoTest(const QByteArray &iname) const; bool hasItem(const QByteArray &iname) const; diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 9098ea4f84e..a3ad639d4f6 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -920,7 +920,7 @@ void WatchTreeView::contextMenuEvent(QContextMenuEvent *ev) grabMouse(Qt::CrossCursor); m_grabbing = true; } else if (act == actWatchExpression) { - watchExpression(exp); + watchExpression(exp, name); } else if (act == actRemoveWatchExpression) { handler->removeData(p.data(LocalsINameRole).toByteArray()); } else if (act == actCopy) { @@ -1036,7 +1036,12 @@ void WatchTreeView::reset() void WatchTreeView::watchExpression(const QString &exp) { - currentEngine()->watchHandler()->watchExpression(exp); + watchExpression(exp, QString()); +} + +void WatchTreeView::watchExpression(const QString &exp, const QString &name) +{ + currentEngine()->watchHandler()->watchExpression(exp, name); } void WatchTreeView::setModelData diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h index 1c091c0840d..41492a346f8 100644 --- a/src/plugins/debugger/watchwindow.h +++ b/src/plugins/debugger/watchwindow.h @@ -56,6 +56,7 @@ public: public slots: void watchExpression(const QString &exp); + void watchExpression(const QString &exp, const QString &name); void handleItemIsExpanded(const QModelIndex &idx); private: From 67e9bdbd44eceb670e61161df96150f590d66873 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 31 Aug 2012 14:48:14 +0200 Subject: [PATCH 9/9] Fix Mac debugging helpers removing arguments from locals Change-Id: Ifce34d5f51d863eca9e7497a8638703f32cecf44 Reviewed-by: hjk --- src/plugins/debugger/gdb/classicgdbengine.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp index f7058b2d946..bc26584d1d4 100644 --- a/src/plugins/debugger/gdb/classicgdbengine.cpp +++ b/src/plugins/debugger/gdb/classicgdbengine.cpp @@ -1022,7 +1022,8 @@ void GdbEngine::handleDebuggingHelperValue2Classic(const GdbResponse &response) parseWatchData(watchHandler()->expandedINames(), data, contents, &list); //for (int i = 0; i != list.size(); ++i) // qDebug() << "READ: " << list.at(i).toString(); - watchHandler()->insertData(list); + foreach (const WatchData &data, list) + insertData(data); } void GdbEngine::handleDebuggingHelperValue3Classic(const GdbResponse &response)