Merge remote-tracking branch 'origin/4.14'

Change-Id: Iea91e66d30f797c079fe09e12a6744c36c58be1a
This commit is contained in:
Eike Ziller
2021-02-09 11:42:57 +01:00
8 changed files with 283 additions and 197 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -321,6 +321,11 @@
function after pressing \key {Shift+F11}, the \uicontrol {Return Value} function after pressing \key {Shift+F11}, the \uicontrol {Return Value}
pane displays the value returned by the function. pane displays the value returned by the function.
When using GDB, you can specify whether the dynamic or the static type of
objects will be displayed. Select \uicontrol {Use dynamic object type for
display} in the context menu. Keep in mind that choosing the dynamic type
might be slower.
//! [debugger-locals] //! [debugger-locals]
//! [debugger-expressions] //! [debugger-expressions]

View File

@@ -0,0 +1,223 @@
/****************************************************************************
**
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [debugger-settings]
\section1 Specifying Debugger Settings
To specify settings for managing debugger processes, select \uicontrol Tools
> \uicontrol Options > \uicontrol Debugger. In the \uicontrol General tab,
you can specify settings that are common to all debuggers.
\image qtcreator-debugger-general-options.png
You can customize the appearance and behavior of the debug views,
\l{Specifying Breakpoint Settings}{specify settings for breakpoints},
and map source paths to target paths.
\section2 Mapping Source Paths
To enable the debugger to step into the code and display the source code
when using a copy of the source tree at a location different from the one
at which the libraries were built, you can map source paths to target
paths.
To automatically map the source paths to a Qt version that has not been
patched, select \uicontrol {Add Qt Sources} and browse to the location
of the Qt source files.
To manually map the source paths to target paths:
\list 1
\li In \uicontrol {Source Paths Mapping}, select \uicontrol Add to add
an entry to the path list.
\li In the \uicontrol {Source path} field, specify the source path in
the debug information of the executable as reported by the debugger.
\li In the \uicontrol {Target path} field, specify the actual location
of the source tree on the local machine.
\endlist
\section2 Specifying GDB Settings
To specify settings for managing the GDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol GDB.
\image qtcreator-gdb-options.png "GDB options"
To specify a timeout for terminating non-responsive GDB processes, set the
number of seconds to wait in the \uicontrol {GDB timeout} field. The default
value of 20 seconds should be sufficient for most applications, but if
loading big libraries or listing source files takes much longer than
that on slow machines, you should increase the value.
To compress several steps into one step for less noisy debugging when
stepping into code, select the \uicontrol {Skip known frames when stepping}
check box. For example, the atomic reference counting code is skipped, and
a single \e {Step Into} for a signal emission ends up directly in the slot
connected to it.
To display a message box as soon as your application receives a signal, such
as SIGSEGV, during debugging, select the \uicontrol {Show a message box when
receiving a signal} check box.
GDB allows setting breakpoints on source lines for which no code was
generated. In such situations, the breakpoint is shifted to the next
source code line for which the code was actually generated. To reflect
such temporary changes by moving the breakpoint markers in the source
code editor, select the \uicontrol {Adjust breakpoint locations} check box.
To specify whether the dynamic or the static type of objects will be
displayed, select the \uicontrol {Use dynamic object type for display}
check box. Keep in mind that choosing the dynamic type might be slower.
To allow reading the user's default .gdbinit file on debugger startup,
select the \uicontrol {Load .gdbinit file on startup} check box.
To use the default GDB pretty printers installed in your system
or linked to the libraries your application uses, select the
\uicontrol {Load system GDB pretty printers} check box.
By default, GDB shows AT&T style disassembly. To switch to the Intel style,
select the \uicontrol {Use Intel style disassembly} check box.
To execute GDB commands after GDB has been started, but before the debugged
program is started or attached, and before the debugging helpers are
initialized, enter them in the \uicontrol {Additional Startup Commands}
field.
To execute GDB commands after GDB has successfully attached to remote
targets, enter them in the \uicontrol {Additional Attach Commands} field.
You can add commands to further set up the target here, such as
\c {monitor reset} or \c {load}.
To execute simple Python commands, prefix them with \c python. To execute
sequences of Python commands spanning multiple lines, prepend the block
with \c python on a separate line, and append \c end on a separate line.
To execute arbitrary Python scripts, use
\c {python execfile('/path/to/script.py')}.
\section2 Specifying Extended GDB Settings
To specify extended settings for GBD, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol {GDB Extended}.
The settings give access to advanced or experimental functions of GDB.
Enabling them may negatively impact your debugging experience, so use
them with care.
\image qtcreator-gdb-extended-options.png "GDB Extended options"
To use asynchronous mode to control the inferior, select the
respective check box.
To add common paths to locations of debug information, such as
\c {/usr/src/debug}, when starting GDB, select the
\uicontrol {Use common locations for debug information} check box.
To stop when \c qWarning, \c qFatal, or \c abort is called, select the
respective check box.
To enable stepping backwards, select the \uicontrol {Enable reverse
debugging} check box. This feature is very slow and unstable on the
GDB side. It exhibits unpredictable behavior when going backwards over
system calls and is very likely to destroy your debugging session.
To keep debugging all children after a fork, select the
\uicontrol {Debug all child processes} check box.
\section2 Specifying CDB Settings
To specify settings for managing the CDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol CDB.
\image qtcreator-cdb-options.png "CDB options"
You can specify additional arguments for starting CDB in the
\uicontrol {Additional arguments} field.
If a console application does not start up properly in the configured
console and the subsequent attach fails, you can diagnose the issue by
using CDB's native console. Select the \uicontrol {Use CDB console}
check box to override the console set in the Windows system
environment variables. Note that the native console does not
prompt on application exit.
To automatically add a breakpoint on the \c CrtCbgReport() function,
select the \uicontrol {Stop when CrtCbgReport() is called} check box.
This catches runtime error messages caused by \c assert(), for example.
In the \uicontrol {Break on} group, specify whether the debugger should
break on C++ exceptions, on thread creation or exit, on loading or
unloading the specified \l{Viewing Modules}{application modules}, or on
the specified output.
To disable first-chance break on access violation exceptions, select the
\uicontrol {Ignore first chance access violations} check box.
The second occurrence of an access violation will break into the debugger.
CDB enables setting breakpoints in comments or on source lines for which
no code was generated. In such situations, the breakpoint is shifted to
the next source code line for which the code was actually generated. To
reflect such temporary changes by moving the breakpoint markers in the
source code editor, select the \uicontrol {Correct breakpoint location}
check box. For more information, see \l{Setting Breakpoints}.
To use the abstraction layer provided by Python Dumper
classes to create a description of data items displayed
in the \uicontrol Locals and \uicontrol Expressions
views, select the \uicontrol {Use Python dumper} check box.
For more information, see \l{Debugging Helper Implementation}.
To add information about first-chance and second-chance exceptions
to the \uicontrol Issues output pane, select the check boxes
in the \uicontrol {Add Exceptions to the Issues View} group.
\section2 Setting CDB Paths on Windows
To obtain debugging information for the operating system libraries for
debugging Windows applications, add the Symbol Server provided by Microsoft
to the symbol search path of the debugger:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol {CDB Paths}.
\image qtcreator-debugger-cdb-paths.png
\li In the \uicontrol {Symbol Paths} group, select \uicontrol Insert.
\li Select the directory where you want to store the cached information.
Use a subfolder in a temporary directory, such as
\c {C:\temp\symbolcache}.
\li Select \uicontrol OK.
\endlist
\note Populating the cache might take a long time on a slow network
connection.
To use the Source Server infrastructure for fetching missing source files
directly from version control or the web, enter the following string in
the \uicontrol {Source Paths} field: \c srv*.
//! [debugger-settings]
*/

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2019 The Qt Company Ltd. ** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -230,198 +230,6 @@
We recommend using the LLDB version that is delivered with the latest Xcode. We recommend using the LLDB version that is delivered with the latest Xcode.
\section1 Specifying Debugger Settings
To specify settings for managing debugger processes, select \uicontrol Tools
> \uicontrol Options > \uicontrol Debugger. In the \uicontrol General tab,
you can specify settings that are common to all debuggers.
\image qtcreator-debugger-general-options.png
\section2 Specifying GDB Settings
To specify settings for managing the GDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol GDB.
\image qtcreator-gdb-options.png "GDB options"
To specify a timeout for terminating non-responsive GDB processes, set the
number of seconds to wait in the \uicontrol {GDB timeout} field. The default
value of 20 seconds should be sufficient for most applications, but if
loading big libraries or listing source files takes much longer than
that on slow machines, you should increase the value.
To compress several steps into one step for less noisy debugging when
stepping into code, select the \uicontrol {Skip known frames when stepping}
check box. For example, the atomic reference counting code is skipped, and
a single \e {Step Into} for a signal emission ends up directly in the slot
connected to it.
To display a message box as soon as your application receives a signal, such
as SIGSEGV, during debugging, select the \uicontrol {Show a message box when
receiving a signal} check box.
GDB allows setting breakpoints on source lines for which no code was
generated. In such situations, the breakpoint is shifted to the next
source code line for which the code was actually generated. To reflect
such temporary changes by moving the breakpoint markers in the source
code editor, select the \uicontrol {Adjust breakpoint locations} check box.
To specify whether the dynamic or the static type of objects will be
displayed, select the \uicontrol {Use dynamic object type for display}
check box. Keep in mind that choosing the dynamic type might be slower.
To allow reading the user's default .gdbinit file on debugger startup,
select the \uicontrol {Load .gdbinit file on startup} check box.
To use the default GDB pretty printers installed in your system
or linked to the libraries your application uses, select the
\uicontrol {Load system GDB pretty printers} check box.
By default, GDB shows AT&T style disassembly. To switch to the Intel style,
select the \uicontrol {Use Intel style disassembly} check box.
To execute GDB commands after GDB has been started, but before the debugged
program is started or attached, and before the debugging helpers are
initialized, enter them in the \uicontrol {Additional Startup Commands}
field.
To execute GDB commands after GDB has successfully attached to remote
targets, enter them in the \uicontrol {Additional Attach Commands} field.
You can add commands to further set up the target here, such as
\c {monitor reset} or \c {load}.
To execute simple Python commands, prefix them with \c python. To execute
sequences of Python commands spanning multiple lines, prepend the block
with \c python on a separate line, and append \c end on a separate line.
To execute arbitrary Python scripts, use
\c {python execfile('/path/to/script.py')}.
\section2 Specifying Extended GDB Settings
To specify extended settings for GBD, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol {GDB Extended}.
The settings give access to advanced or experimental functions of GDB.
Enabling them may negatively impact your debugging experience, so use
them with care.
\image qtcreator-gdb-extended-options.png "GDB Extended options"
To use asynchronous mode to control the inferior, select the
respective check box.
To add common paths to locations of debug information, such as
\c {/usr/src/debug}, when starting GDB, select the
\uicontrol {Use common locations for debug information} check box.
To stop when \c qWarning, \c qFatal, or \c abort is called, select the
respective check box.
To enable stepping backwards, select the \uicontrol {Enable reverse
debugging} check box. This feature is very slow and unstable on the
GDB side. It exhibits unpredictable behavior when going backwards over
system calls and is very likely to destroy your debugging session.
To keep debugging all children after a fork, select the
\uicontrol {Debug all child processes} check box.
\section2 Specifying CDB Settings
To specify settings for managing the CDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol CDB.
\image qtcreator-cdb-options.png "CDB options"
You can specify additional arguments for starting CDB in the
\uicontrol {Additional arguments} field.
If a console application does not start up properly in the configured
console and the subsequent attach fails, you can diagnose the issue by
using CDB's native console. Select the \uicontrol {Use CDB console}
check box to override the console set in the Windows system
environment variables. Note that the native console does not
prompt on application exit.
To automatically add a breakpoint on the \c CrtCbgReport() function,
select the \uicontrol {Stop when CrtCbgReport() is called} check box.
This catches runtime error messages caused by \c assert(), for example.
In the \uicontrol {Break on} group, specify whether the debugger should
break on C++ exceptions, on thread creation or exit, on loading or
unloading the specified \l{Viewing Modules}{application modules}, or on
the specified output.
To disable first-chance break on access violation exceptions, select the
\uicontrol {Ignore first chance access violations} check box.
The second occurrence of an access violation will break into the debugger.
CDB enables setting breakpoints in comments or on source lines for which
no code was generated. In such situations, the breakpoint is shifted to
the next source code line for which the code was actually generated. To
reflect such temporary changes by moving the breakpoint markers in the
source code editor, select the \uicontrol {Correct breakpoint location}
check box. For more information, see \l{Setting Breakpoints}.
To use the abstraction layer provided by Python Dumper
classes to create a description of data items displayed
in the \uicontrol Locals and \uicontrol Expressions
views, select the \uicontrol {Use Python dumper} check box.
For more information, see \l{Debugging Helper Implementation}.
To add information about first-chance and second-chance exceptions
to the \uicontrol Issues output pane, select the check boxes
in the \uicontrol {Add Exceptions to the Issues View} group.
\section1 Mapping Source Paths
To enable the debugger to step into the code and display the source code
when using a copy of the source tree at a location different from the one
at which the libraries were built, map the source paths to target paths:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol General > \uicontrol Add.
\li In the \uicontrol {Source path} field, specify the source path in
the debug information of the executable as reported by the debugger.
\li In the \uicontrol {Target path} field, specify the actual location
of the source tree on the local machine.
\endlist
\section1 Setting CDB Paths on Windows
To obtain debugging information for the operating system libraries for
debugging Windows applications, add the Symbol Server provided by Microsoft
to the symbol search path of the debugger:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol {CDB Paths}.
\image qtcreator-debugger-cdb-paths.png
\li In the \uicontrol {Symbol Paths} group, select \uicontrol Insert.
\li Select the directory where you want to store the cached information.
Use a subfolder in a temporary directory, such as
\c {C:\temp\symbolcache}.
\li Select \uicontrol OK.
\endlist
\note Populating the cache might take a long time on a slow network
connection.
To use the Source Server infrastructure for fetching missing source files
directly from version control or the web, enter the following string in
the \uicontrol {Source Paths} field: \c srv*.
\section1 Setting up FSF GDB for \macos \section1 Setting up FSF GDB for \macos
To use FSF GDB on \macos, you must sign it and add it to the \QC To use FSF GDB on \macos, you must sign it and add it to the \QC

View File

@@ -124,6 +124,10 @@
\uicontrol GDB and \uicontrol CDB. For more information, see \uicontrol GDB and \uicontrol CDB. For more information, see
\l{Specifying Debugger Settings}. \l{Specifying Debugger Settings}.
To allow reading the user's default .gdbinit file on debugger startup,
select the \uicontrol {Load .gdbinit file on startup} check box in
GDB settings. For more information, see \l{Specifying GDB Settings}.
\note Starting a C++ program in the debugger can take a long time, typically \note Starting a C++ program in the debugger can take a long time, typically
in the range of several seconds to minutes if complex features are used. in the range of several seconds to minutes if complex features are used.
@@ -411,6 +415,13 @@
\endlist \endlist
By default, a non-responsive GDB process is terminated after 20 seconds.
To increase the timeout in the \uicontrol {GDB timeout} field, select
\uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol GDB. For more information about settings that you can specify
to manage the GDB process, see \l{Specifying GDB Settings} and
\l{Specifying Extended GDB Settings}.
\section3 Using CDB \section3 Using CDB
In remote mode, the local CDB process talks to a CDB process that runs on In remote mode, the local CDB process talks to a CDB process that runs on
@@ -475,6 +486,10 @@
\li Click \uicontrol OK to start debugging. \li Click \uicontrol OK to start debugging.
\endlist \endlist
To specify settings for managing the CDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol CDB. For more
information, see \l{Specifying CDB Settings}.
*/ */
@@ -608,6 +623,16 @@
It is also possible to continue executing the program until the current It is also possible to continue executing the program until the current
function completes or jump to an arbitrary position in the current function. function completes or jump to an arbitrary position in the current function.
\section2 Stepping Into Code
When using GDB as the debugging backend, you can compress several steps
into one step for less noisy debugging. For more information, see
\l{Specifying GDB Settings}.
The extended GDB settings provide the option to step backwards in code,
but this option should be used with care, as it is slow and unstable on the
GDB side. For more information, see \l{Specifying Extended GDB Settings}.
\section2 Customizing Debug Views \section2 Customizing Debug Views
You can change the appearance and behavior of the debug views by specifying You can change the appearance and behavior of the debug views by specifying
@@ -736,6 +761,11 @@
Right-click the view to open a context menu that contains menu items for Right-click the view to open a context menu that contains menu items for
reloading data and opening files. reloading data and opening files.
To enable the debugger to step into the code and display the source code
when using a copy of the source tree at a location different from the one
at which the libraries were built, you can map source paths to target
paths. For more information, see \l{Mapping Source Paths}.
By default, the \uicontrol {Source Files} view is hidden. By default, the \uicontrol {Source Files} view is hidden.
\section2 Viewing Disassembled Code \section2 Viewing Disassembled Code
@@ -752,6 +782,10 @@
running. Alternatively, click the \inlineimage debugger_singleinstructionmode.png running. Alternatively, click the \inlineimage debugger_singleinstructionmode.png
(\uicontrol {Operate by Instruction}) tool button on the debugger tool bar. (\uicontrol {Operate by Instruction}) tool button on the debugger tool bar.
By default, GDB shows AT&T style disassembly. To switch to the Intel style,
select \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol GDB > \uicontrol {Use Intel style disassembly}.
\section2 Viewing and Editing Register State \section2 Viewing and Editing Register State
The \uicontrol Registers view displays the current state of the CPU registers. The \uicontrol Registers view displays the current state of the CPU registers.
@@ -784,6 +818,8 @@
\l{https://sourceware.org/gdb/onlinedocs/gdb/Core-File-Generation.html}. \l{https://sourceware.org/gdb/onlinedocs/gdb/Core-File-Generation.html}.
\endomit \endomit
\include creator-debugger-settings.qdocinc debugger-settings
*/ */
@@ -832,7 +868,7 @@
\QC uses Python scripts to translate raw memory contents and type information \QC uses Python scripts to translate raw memory contents and type information
data from native debugger backends (GDB, LLDB, and CDB are currently supported) data from native debugger backends (GDB, LLDB, and CDB are currently supported)
into the form presented to the user in the \uicontrol {Locals} and into the form presented to the user in the \uicontrol {Locals} and
\uicontrol {Expressions} views. \uicontrol {Expressions} views.
Unlike GDB's Unlike GDB's
@@ -843,6 +879,11 @@
Linux, LLDB on macOS, and CDB on Windows, or any other platform on which at Linux, LLDB on macOS, and CDB on Windows, or any other platform on which at
least one of the three supported backends is available. least one of the three supported backends is available.
To use the default GDB pretty printers installed in your system or linked
to the libraries your application uses, select \uicontrol Options >
\uicontrol Debugger > \uicontrol GDB > \uicontrol {Load system GDB pretty
printers}. For more information, see \l{Specifying GDB Settings}.
\section2 Customizing Built-In Debugging Helpers \section2 Customizing Built-In Debugging Helpers
You can have commands executed after built-in debugging helpers have You can have commands executed after built-in debugging helpers have
@@ -868,6 +909,11 @@
handle SIGSTOP nostop handle SIGSTOP nostop
\endcode \endcode
To display a message box as soon as your application receives a signal
during debugging, select \uicontrol Tools > \uicontrol Options >
\uicontrol Debugger > \uicontrol GDB > \uicontrol {Show a message box
when receiving a signal}.
\section2 Adding Custom Debugging Helpers \section2 Adding Custom Debugging Helpers
To add debugging helpers for your own types, no compilation is required, To add debugging helpers for your own types, no compilation is required,

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2017 The Qt Company Ltd. ** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -26,7 +26,7 @@
/*! /*!
//! [run settings debugger] //! [run settings debugger]
\section1 Specifying Debugger Settings \section1 Enabling Debugging
\image qtquick-debugging-settings.png "Debugger Settings" \image qtquick-debugging-settings.png "Debugger Settings"

View File

@@ -71,6 +71,10 @@ CapturedDataCommand::StateData collectStateData(ServerNodeInstance rootNodeInsta
if (!colorProperty.isNull()) if (!colorProperty.isNull())
nodeData.properties.emplace_back(QString{"color"}, colorProperty); nodeData.properties.emplace_back(QString{"color"}, colorProperty);
auto visibleProperty = instance.property("visible");
if (!colorProperty.isNull())
nodeData.properties.emplace_back(QString{"visible"}, visibleProperty);
stateData.nodeData.push_back(std::move(nodeData)); stateData.nodeData.push_back(std::move(nodeData));
} }

View File

@@ -138,7 +138,7 @@ bool TranslationWizardPage::validatePage()
{ {
const auto w = static_cast<JsonWizard *>(wizard()); const auto w = static_cast<JsonWizard *>(wizard());
w->setValue("TsFileName", tsBaseName().isEmpty() ? QString() : QString(tsBaseName() + ".ts")); w->setValue("TsFileName", tsBaseName().isEmpty() ? QString() : QString(tsBaseName() + ".ts"));
w->setValue("TsLanguage", m_fileNameLineEdit.text()); w->setValue("TsLanguage", m_languageComboBox.currentData().toString());
return true; return true;
} }