* gdb.texinfo (TUI Commands): Document tui reg commands.
[deliverable/binutils-gdb.git] / gdb / PROBLEMS
CommitLineData
e2c9a72c 1
faae5abe 2 Known problems in GDB 6.1
e2c9a72c 3
36cc83a3 4 See also: http://www.gnu.org/software/gdb/bugs/
e2c9a72c 5
e6beb428 6
103a0089 7*** Misc
e6beb428 8
103a0089 9gdb/1560: Control-C does not always interrupt GDB.
e6beb428 10
103a0089
AC
11When GDB is busy processing a command which takes a long time to
12complete, hitting Control-C does not have the expected effect.
13The command execution is not aborted, and the "QUIT" message confirming
14the abortion is displayed only after the command has been completed.
15
16*** C++ support
ed47347a 17
ed47347a
MC
18gdb/931: GDB could be more generous when reading types C++ templates on input
19
20When the user types a template, GDB frequently requires the type to be
21typed in a certain way (e.g. "const char*" as opposed to "const char *"
22or "char const *" or "char const*").
23
ed47347a
MC
24gdb/1512: no canonical way to output names of C++ types
25
26We currently don't have any canonical way to output names of C++ types.
27E.g. "const char *" versus "char const *"; more subtleties arise when
28dealing with templates.
29
c6e06ede
MC
30gdb/1516: [regression] local classes, gcc 2.95.3, dwarf-2
31
32With gcc 2.95.3 and the dwarf-2 debugging format, classes which are
33defined locally to a function include the demangled name of the function
34as part of their name. For example, if a function "foobar" contains a
35local class definition "Local", gdb will say that the name of the class
36type is "foobar__Fi.0:Local".
37
38This applies only to classes where the class type is defined inside a
39function, not to variables defined with types that are defined somewhere
40outside any function (which most types are).
41
8c691c7a
DC
42gdb/1588: names of c++ nested types in casts must be enclosed in quotes
43
44You must type
45 (gdb) print ('Foo::Bar') x
46or
47 (gdb) print ('Foo::Bar' *) y
48instead of
49 (gdb) print (Foo::Bar) x
50or
51 (gdb) print (Foo::Bar *) y
52respectively.
53
e8ac10a6
MC
54gdb/1091: Constructor breakpoints ignored
55gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints
e2c9a72c 56
e8ac10a6
MC
57When gcc 3.x compiles a C++ constructor or C++ destructor, it generates
582 or 3 different versions of the object code. These versions have
59unique mangled names (they have to, in order for linking to work), but
60they have identical source code names, which leads to a great deal of
61confusion. Specifically, if you set a breakpoint in a constructor or a
62destructor, gdb will put a breakpoint in one of the versions, but your
63program may execute the other version. This makes it impossible to set
64breakpoints reliably in constructors or destructors.
65
66gcc 3.x generates these multiple object code functions in order to
67implement virtual base classes. gcc 2.x generated just one object code
68function with a hidden parameter, but gcc 3.x conforms to a multi-vendor
69ABI for C++ which requires multiple object code functions.
589ca796 70
103a0089
AC
71*** Stack backtraces
72
73gdb/1505: [regression] gdb prints a bad backtrace for a thread
74
75When backtracing a thread, gdb doesn't stop until it hits garbage.
76This is sensitive to the operating system and thread library.
77
78mips*-*-*
79powerpc*-*-*
80sparc*-*-*
81
82GDB's SPARC, MIPS and PowerPC targets, in 6.0, have not been updated
83to use the new frame mechanism.
84
85People encountering problems with these targets should consult GDB's
86web pages and mailing lists (http://www.gnu.org/software/gdb/) to see
87if there is an update.
88
89arm-*-*
90
91GDB's ARM target, in 6.0, has not been updated to use the new frame
92mechanism.
93
94Fortunately the ARM target, in the GDB's mainline sources, has been
95updated so people encountering problems should consider downloading a
96more current GDB (http://www.gnu.org/software/gdb/current).
This page took 0.166778 seconds and 4 git commands to generate.