1 2 Known problems in GDB 6.3 3 4 See also: http://www.gnu.org/software/gdb/bugs/ 5 6 7*** Build problems 8 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 27*** Misc 28 29gdb/1560: Control-C does not always interrupt GDB. 30 31When GDB is busy processing a command which takes a long time to 32complete, hitting Control-C does not have the expected effect. 33The command execution is not aborted, and the "QUIT" message confirming 34the abortion is displayed only after the command has been completed. 35 36*** C++ support 37 38gdb/931: GDB could be more generous when reading types C++ templates on input 39 40When the user types a template, GDB frequently requires the type to be 41typed in a certain way (e.g. "const char*" as opposed to "const char *" 42or "char const *" or "char const*"). 43 44gdb/1512: no canonical way to output names of C++ types 45 46We currently don't have any canonical way to output names of C++ types. 47E.g. "const char *" versus "char const *"; more subtleties arise when 48dealing with templates. 49 50gdb/1516: [regression] local classes, gcc 2.95.3, dwarf-2 51 52With gcc 2.95.3 and the dwarf-2 debugging format, classes which are 53defined locally to a function include the demangled name of the function 54as part of their name. For example, if a function "foobar" contains a 55local class definition "Local", gdb will say that the name of the class 56type is "foobar__Fi.0:Local". 57 58This applies only to classes where the class type is defined inside a 59function, not to variables defined with types that are defined somewhere 60outside any function (which most types are). 61 62gdb/1588: names of c++ nested types in casts must be enclosed in quotes 63 64You must type 65 (gdb) print ('Foo::Bar') x 66or 67 (gdb) print ('Foo::Bar' *) y 68instead of 69 (gdb) print (Foo::Bar) x 70or 71 (gdb) print (Foo::Bar *) y 72respectively. 73 74gdb/1091: Constructor breakpoints ignored 75gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints 76 77When gcc 3.x compiles a C++ constructor or C++ destructor, it generates 782 or 3 different versions of the object code. These versions have 79unique mangled names (they have to, in order for linking to work), but 80they have identical source code names, which leads to a great deal of 81confusion. Specifically, if you set a breakpoint in a constructor or a 82destructor, gdb will put a breakpoint in one of the versions, but your 83program may execute the other version. This makes it impossible to set 84breakpoints reliably in constructors or destructors. 85 86gcc 3.x generates these multiple object code functions in order to 87implement virtual base classes. gcc 2.x generated just one object code 88function with a hidden parameter, but gcc 3.x conforms to a multi-vendor 89ABI for C++ which requires multiple object code functions. 90 91*** Threads 92 93threads/1650: manythreads.exp 94 95On GNU/Linux systems that use the old LinuxThreads thread library, a 96program rapidly creating and deleting threads can confuse GDB leading 97to an internal error. 98 99This problem does not occur on newer systems that use the NPTL 100library, and did not occur with GDB 6.1. 101