aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Qt Project <[email protected]>2025-07-04 11:26:40 +0000
committerThe Qt Project <[email protected]>2025-07-04 11:26:40 +0000
commite7335ca4508219e8f36e637439dc30573514b069 (patch)
treed1f18834e097694b018a8fb42862a47bf4417446
parent801c99d20016cb0a63c4c4ddf2055d33f1f987e9 (diff)
parent2e25985a176248fe5c4610748d28c3e4b128c16f (diff)
Merge "Merge remote-tracking branch 'origin/17.0'"HEADmaster
-rw-r--r--doc/qtcreator/src/android/androiddev.qdoc13
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-issues.qdoc5
-rw-r--r--src/app/main.cpp3
-rw-r--r--src/libs/qtcreatorcdbext/CMakeLists.txt2
-rw-r--r--src/plugins/coreplugin/coreplugin.cpp2
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp33
-rw-r--r--src/plugins/debugger/lldb/lldbengine.cpp4
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp2
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizardfilegenerator.cpp2
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp2
10 files changed, 48 insertions, 20 deletions
diff --git a/doc/qtcreator/src/android/androiddev.qdoc b/doc/qtcreator/src/android/androiddev.qdoc
index e7d7c373b68..2d892a22121 100644
--- a/doc/qtcreator/src/android/androiddev.qdoc
+++ b/doc/qtcreator/src/android/androiddev.qdoc
@@ -355,6 +355,19 @@
You can use LLDB to debug applications on Android devices that you develop
with Qt 5.15.9 or later and Qt 6.2 or later.
+ Recent releases of \QC have issues with Native (C++) debugging using LLDB
+ on Android.
+
+ This was fixed in \QC 17.0.1. To fix this in earlier releases, go to
+ \preferences > \uicontrol Debugger > \uicontrol GDB, and add the following
+ in \uicontrol {Additional Attach Commands}.
+
+ \badcode
+ settings set plugin.jit-loader.gdb.enable off
+ \endcode
+
+ \image {qtcreator-preferences-debugger-gdb.webp} {GDB tab in Debugger preferences}
+
You enable debugging in different ways on different Android devices.
Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}.
Tap \uicontrol {Build number} in \uicontrol Settings > \uicontrol About
diff --git a/doc/qtcreator/src/overview/creator-only/creator-issues.qdoc b/doc/qtcreator/src/overview/creator-only/creator-issues.qdoc
index 8d310983323..aecc8021647 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-issues.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-issues.qdoc
@@ -19,7 +19,10 @@
The \QC development team is aware of the issues described here, and
therefore, you do not need to report them in the \l{https://bugreports.qt.io}
- {Qt Project Bug Tracker}.
+ {Qt Project Bug Tracker}. However, if you run into these issues,
+ feel free to check the links to the applicable bug ticket
+ and add your vote or any additional information you might have
+ about your development environment.
For a list of fixed issues and added features, go to \uicontrol Help >
\uicontrol {Change Log}.
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 1f3e8186734..557faf7d982 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -1007,9 +1007,6 @@ int main(int argc, char **argv)
QObject::connect(&app, &SharedTools::QtSingleApplication::messageReceived,
&pluginManager, &PluginManager::remoteArguments);
- QObject::connect(&app, SIGNAL(fileOpenRequest(QString)), coreplugin->plugin(),
- SLOT(fileOpenRequest(QString)));
-
// shutdown plugin manager on the exit
QObject::connect(&app, &QCoreApplication::aboutToQuit, &pluginManager, &PluginManager::shutdown);
diff --git a/src/libs/qtcreatorcdbext/CMakeLists.txt b/src/libs/qtcreatorcdbext/CMakeLists.txt
index d80ae96bfb1..c731495672d 100644
--- a/src/libs/qtcreatorcdbext/CMakeLists.txt
+++ b/src/libs/qtcreatorcdbext/CMakeLists.txt
@@ -247,7 +247,7 @@ if (_library_enabled)
extend_qtc_library(qtcreatorcdbext
DEPENDS "${Python3_LIBRARIES}"
INCLUDES "${Python3_INCLUDE_DIRS}"
- DEFINES WITH_PYTHON=1 PY_SSIZE_T_CLEAN Py_GIL_DISABLED
+ DEFINES WITH_PYTHON=1 PY_SSIZE_T_CLEAN
SOURCES
pycdbextmodule.cpp pycdbextmodule.h
pyfield.cpp pyfield.h
diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp
index eb7e90b68ac..83b7432a7fc 100644
--- a/src/plugins/coreplugin/coreplugin.cpp
+++ b/src/plugins/coreplugin/coreplugin.cpp
@@ -76,6 +76,8 @@ const char kWarnCrashReportingSetting[] = "WarnCrashReporting";
CorePlugin::CorePlugin()
{
+ QObject::connect(qApp, SIGNAL(fileOpenRequest(QString)), this, SLOT(fileOpenRequest(QString)));
+
// Trigger creation as early as possible before anyone else could
// mess with the systemEnvironment before it is "backed up".
(void) systemSettings();
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 3806d2a8fe5..b1b13351d3f 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1180,20 +1180,27 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(const QStringList &arguments)
addCdbOptionPages(&m_optionPages);
- connect(ModeManager::instance(), &ModeManager::currentModeAboutToChange, this, [] {
- if (ModeManager::currentModeId() == MODE_DEBUG)
- DebuggerMainWindow::leaveDebugMode();
- });
+ connect(
+ ModeManager::instance(),
+ &ModeManager::currentModeAboutToChange,
+ DebuggerMainWindow::instance(),
+ [] {
+ if (ModeManager::currentModeId() == MODE_DEBUG)
+ DebuggerMainWindow::leaveDebugMode();
+ });
- connect(ModeManager::instance(), &ModeManager::currentModeChanged,
- this, [](Id mode, Id oldMode) {
- QTC_ASSERT(mode != oldMode, return);
- if (mode == MODE_DEBUG) {
- DebuggerMainWindow::enterDebugMode();
- if (IEditor *editor = EditorManager::currentEditor())
- editor->widget()->setFocus();
- }
- });
+ connect(
+ ModeManager::instance(),
+ &ModeManager::currentModeChanged,
+ DebuggerMainWindow::instance(),
+ [](Id mode, Id oldMode) {
+ QTC_ASSERT(mode != oldMode, return);
+ if (mode == MODE_DEBUG) {
+ DebuggerMainWindow::enterDebugMode();
+ if (IEditor *editor = EditorManager::currentEditor())
+ editor->widget()->setFocus();
+ }
+ });
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
this, &DebuggerPluginPrivate::updateDebugWithoutDeployMenu);
diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp
index a19b75b51e3..46279eb9480 100644
--- a/src/plugins/debugger/lldb/lldbengine.cpp
+++ b/src/plugins/debugger/lldb/lldbengine.cpp
@@ -28,6 +28,7 @@
#include <coreplugin/idocument.h>
#include <coreplugin/icore.h>
+#include <projectexplorer/abi.h>
#include <projectexplorer/runcontrol.h>
#include <utils/algorithm.h>
@@ -262,6 +263,9 @@ void LldbEngine::handleLldbStarted()
for (const FilePath &path : rp.solibSearchPath())
executeDebuggerCommand("settings append target.exec-search-paths " + path.path());
+ if (rp.toolChainAbi().osFlavor() == ProjectExplorer::Abi::AndroidLinuxFlavor)
+ executeDebuggerCommand("settings set plugin.jit-loader.gdb.enable off");
+
const FilePath &executable = rp.inferior().command.executable();
DebuggerCommand cmd2("setupInferior");
cmd2.arg("executable", executable.path());
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index c28d49bd137..ef22b6b1361 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -1505,6 +1505,8 @@ Toolchains GccToolchainFactory::autoDetect(const ToolchainDetector &detector) co
if (HostOsInfo::isMacHost() && detector.device->type() == Constants::DESKTOP_DEVICE_TYPE) {
executables.removeOne(FilePath::fromPathPart(u"/usr/bin/gcc"));
executables.removeOne(FilePath::fromPathPart(u"/usr/bin/g++"));
+ executables.removeOne(FilePath::fromPathPart(u"/usr/bin/llvm-gcc"));
+ executables.removeOne(FilePath::fromPathPart(u"/usr/bin/llvm-g++"));
}
Utils::sort(executables);
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfilegenerator.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfilegenerator.cpp
index 2288896323b..0fd45bbf02a 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfilegenerator.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfilegenerator.cpp
@@ -233,7 +233,7 @@ Core::GeneratedFiles JsonWizardFileGenerator::fileList(MacroExpander *expander,
const Result<Core::GeneratedFile> file = generateFile(f, expander);
if (!file)
*errorMessage = file.error();
- return file.value();
+ return file.value_or(Core::GeneratedFile());
});
if (Utils::contains(result, [](const Core::GeneratedFile &gf) {
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index ee37f375a06..d2192774963 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -85,7 +85,7 @@ static void findAllQrcFiles(const FilePath &filePath, FilePaths &out)
out.append(path.canonicalPath());
return IterationPolicy::Continue;
},
- {{"*.qrc"}, QDir::Files | QDir::Hidden, QDirIterator::Subdirectories});
+ {{"*.qrc"}, QDir::Files | QDir::Hidden | QDir::NoSymLinks, QDirIterator::Subdirectories});
}
static FilePaths findGeneratedQrcFiles(const ModelManagerInterface::ProjectInfo &pInfo,