* inf-ptrace.c (inf_ptrace_kill_inferior): Call ptrace directly
[deliverable/binutils-gdb.git] / gdb / PROBLEMS
CommitLineData
e2c9a72c 1
860660cb 2 Known problems in GDB 6.2
e2c9a72c 3
36cc83a3 4 See also: http://www.gnu.org/software/gdb/bugs/
e2c9a72c 5
e6beb428 6
43e2e1a0
AC
7*** Build problems
8
926c94e7
MC
9build/1411: build fails on hpux 10.20 and hpux 11.00 with CMA threads
10
11GDB does not build on HP/UX 10.20 or HP/UX 11.00 if the CMA
12thread package is installed. The compile error is:
13
14 ../../gdb/hpux-thread.c:222: variable-size type declared outside of any function
15
16This happens only if the CMA thread package is installed.
17
18As a workaround, you can disable support for CMA threads
19by editing the file gdb/configure. Find the line:
20
21 if test -f /usr/include/dce/cma_config.h ; then
22
23And replace it with:
24
25 if false ; then
26
5191de37 27build/1458: compile failed on hpux11
43e2e1a0 28
5191de37
MC
29GDB has build problems on HP/UX 11 with some versions of the HP
30Ansi C compiler. (GCC works fine).
31
32The problem happens when compiling intl/bindtextdom.c.
33The error is:
34
35 cc: "gettextP.h", line 50: error 1000: Unexpected symbol: "SWAP".
36 cc: panic 2017: Cannot recover from earlier errors, terminating.
37 *** Error exit code 1
38
39This is a problem with the 'inline' keyword in gettextP.h.
40The workaround is to disable 'inline' before building gdb:
41
42 export ac_cv_c_inline=no
43
44This problem happens only with some versions of the HP Ansi C compiler.
45Versions A.11.01.25171.GP and B.11.11.28706.GP have both been observed
46to work; version B.11.11.04 gets the build error and needs the
47workaround.
48
49This problem might also happen with other C compilers.
43e2e1a0 50
103a0089 51*** Misc
e6beb428 52
103a0089 53gdb/1560: Control-C does not always interrupt GDB.
e6beb428 54
103a0089
AC
55When GDB is busy processing a command which takes a long time to
56complete, hitting Control-C does not have the expected effect.
57The command execution is not aborted, and the "QUIT" message confirming
58the abortion is displayed only after the command has been completed.
59
60*** C++ support
ed47347a 61
ed47347a
MC
62gdb/931: GDB could be more generous when reading types C++ templates on input
63
64When the user types a template, GDB frequently requires the type to be
65typed in a certain way (e.g. "const char*" as opposed to "const char *"
66or "char const *" or "char const*").
67
ed47347a
MC
68gdb/1512: no canonical way to output names of C++ types
69
70We currently don't have any canonical way to output names of C++ types.
71E.g. "const char *" versus "char const *"; more subtleties arise when
72dealing with templates.
73
c6e06ede
MC
74gdb/1516: [regression] local classes, gcc 2.95.3, dwarf-2
75
76With gcc 2.95.3 and the dwarf-2 debugging format, classes which are
77defined locally to a function include the demangled name of the function
78as part of their name. For example, if a function "foobar" contains a
79local class definition "Local", gdb will say that the name of the class
80type is "foobar__Fi.0:Local".
81
82This applies only to classes where the class type is defined inside a
83function, not to variables defined with types that are defined somewhere
84outside any function (which most types are).
85
8c691c7a
DC
86gdb/1588: names of c++ nested types in casts must be enclosed in quotes
87
88You must type
89 (gdb) print ('Foo::Bar') x
90or
91 (gdb) print ('Foo::Bar' *) y
92instead of
93 (gdb) print (Foo::Bar) x
94or
95 (gdb) print (Foo::Bar *) y
96respectively.
97
e8ac10a6
MC
98gdb/1091: Constructor breakpoints ignored
99gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints
e2c9a72c 100
e8ac10a6
MC
101When gcc 3.x compiles a C++ constructor or C++ destructor, it generates
1022 or 3 different versions of the object code. These versions have
103unique mangled names (they have to, in order for linking to work), but
104they have identical source code names, which leads to a great deal of
105confusion. Specifically, if you set a breakpoint in a constructor or a
106destructor, gdb will put a breakpoint in one of the versions, but your
107program may execute the other version. This makes it impossible to set
108breakpoints reliably in constructors or destructors.
109
110gcc 3.x generates these multiple object code functions in order to
111implement virtual base classes. gcc 2.x generated just one object code
112function with a hidden parameter, but gcc 3.x conforms to a multi-vendor
113ABI for C++ which requires multiple object code functions.
589ca796 114
73cc75f3
AC
115*** Signal handlers
116
117On many systems an attempt to single-step a system-call instruction
118results in two or more instructions being executed (the system-call,
119and one or more instructions following).
120
121When attempting to single-step through a signal trampoline, this
122problem may result the program unintentionally running to completion,
123or re-execute the faulting instruction, or even corrupting the program
124counter.
125
126Ref: PR breakpoints/1702.
127
103a0089
AC
128*** Stack backtraces
129
72b56458
AC
130GDB's core code base has been updated to use a new backtrace
131mechanism. This mechanism makes it possible to support new features
132such DWARF 2 Call Frame Information (which in turn makes possible
133backtraces through optimized code).
134
135Since this code is new, it is known to still have a few problems:
136
103a0089
AC
137gdb/1505: [regression] gdb prints a bad backtrace for a thread
138
72b56458
AC
139When backtracing a thread, gdb does not stop when it reaches the
140outermost frame, instead continuing until it hits garbage. This is
141sensitive to the operating system and thread library.
536517dd
MC
142
143*** Threads
144
145threads/1650: manythreads.exp
146
0dea2468
AC
147On GNU/Linux systems that use the old LinuxThreads thread library, a
148program rapidly creating and deleting threads can confuse GDB leading
149to an internal error.
150
151This problem does not occur on newer systems that use the NPTL
152library, and did not occur with GDB 6.1.
This page took 0.200254 seconds and 4 git commands to generate.