blob: fb11f55a3a46135d35cf09fb69603ffda39d1780 (
plain)
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
|
Architectural overview
----------------------
DebuggerPlugin is the main interface between the Qt Creator "Core" and the
DebuggerManager who is responsible for "doing the work".
The DebuggerManager creates all DebuggerEngines, and has zero or one
"current" Engine. Engines represent an interface to a "native" debugger.
Right now there are engines for gdb (used for C++ on Linux, Mac, Windows/MinGW
and Maemo), for cdb (used for C++ on Windows/MSVC) and "script" (used
for JavaScript on all platforms).
The GdbEngine has different "Adapters" to cope with the variety of environments
it has to cope with. All gdb Adapters inherit from AbstractGdbAdapters.
PlainGdbAdapter handles debugging of locally started GUI processes.
It is physically split into parts
relevant only when Python is available, parts relevant only when Python is
not available and "mixed" code.
TermGdbAdapter is used to debug locally started processes that need a
console.
AttachGdbAdapter is used to debug local processes started outside Creator.
CoreGdbAdapter is used to debug core files generated from crashes.
RemoteGdbAdapter is used to talk to gdbserver running on Linux.
Gdb comes in main two flavours: with or without Python. The Python version
is preferred, but it is not available on Mac and on older versions of Linux.
On Windows and Maemo we only support the Python version.
The non-Python versions use the compiled version of the debugging helpers,
that needs to be enabled in the Qt4 Versions dialog, the Python version use
the script version that does not need any special setup.
The CdbEngine is functionality-wise similar to the Non-Python GdbEngine on
Linux, most notably it uses the same setup for the debugging helper library
(compiled C++ code).
Per platform the situation for C++ debugging looks like:
[Helper loading strategy: /i - injected, /p - preload, /- not available]
Maemo Linux Mac Windows
MinGW MSVC
Engine: gdb gdb gdb gdb cdb
Python: yes yes no no no (not/appl)
Adapters: remote term term/i term/i term term/i
plain plain/p plain/i plain plain/i
attach attach/i attach/i attach attach/i
remote attach/- remote/- remote
Minimum
supported FSF FSF FSF Apple FSF -
version: 7.1 7.1 6.8 1344 7.2
(no python)
Version FSF FSF (XCode) FSF -
in SDK: 7.1 7.2 7.2
(no python)
|