1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
/****************************************************************************
**
** 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
\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, 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
\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]
*/
|