X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2FPROBLEMS;h=77deedc057ee5c20c82e1e25fa52a6801ca58e62;hb=43c3a82e5ba7161808fcbd2e9ba570ee18170fa3;hp=f992b0bc77ede7aa8b95bb9eda368cf87e5aa0d8;hpb=b18a0fd22d2f54d8e23ecd0d28a6a4b3efea21cb;p=binutils-gdb.git diff --git a/gdb/PROBLEMS b/gdb/PROBLEMS index f992b0bc77e..77deedc057e 100644 --- a/gdb/PROBLEMS +++ b/gdb/PROBLEMS @@ -1,80 +1,35 @@ - Known problems in GDB 5.3 + Known problems in GDB 6.0 See also: http://www.gnu.org/software/gdb/bugs/ +gdb/1091: Constructor breakpoints ignored +gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints -*-*-freebsd* ---------------- +When gcc 3.x compiles a C++ constructor or C++ destructor, it generates +2 or 3 different versions of the object code. These versions have +unique mangled names (they have to, in order for linking to work), but +they have identical source code names, which leads to a great deal of +confusion. Specifically, if you set a breakpoint in a constructor or a +destructor, gdb will put a breakpoint in one of the versions, but your +program may execute the other version. This makes it impossible to set +breakpoints reliably in constructors or destructors. -Due to a kernel bug (kern/35175), detaching from an attached process -will very likely cause the process to be stop or die with a Trace/BPT -trap. +gcc 3.x generates these multiple object code functions in order to +implement virtual base classes. gcc 2.x generated just one object code +function with a hidden parameter, but gcc 3.x conforms to a multi-vendor +ABI for C++ which requires multiple object code functions. +gdb/1322: "internal-error: sect_index_text not initialized" after printing a java type -i386-*-freebsd[34]* -------------------- +When gdb debugs a Java program which uses shared libraries, it can +generate this internal error. -There is a bug (bin/41671) in FreeBSD's gcc that causes it to emit bad -debug information when using the stabs format (which is the default). -As a result GDB tends to place breakpoints on functions before the -function prologue, and information about function parameters and local -variables is lost. In earlier versions of GDB the effects were rather -limited, but starting with GDB 5.3 the influence is much more -prominent. As a workaround, compile your code with -gdwarf-2. +If you get this error when debugging Java, you can try working around +the problem by relinking your program with no shared libraries at all +(even the standard C library). With the GNU linker, use the "-static" +argument to do this. +You can also try this patch for gdb: -hppa2.0-hp-hpux10.20 --------------------- - -gdb/487: The top level make files used to build GDB are not compatible -with HP/UX make. As a workaround, use GNU make. - -gdb/486: The HP/UX C compiler defaults to K&R mode but GDB only builds -with an ISO C compiler. The top level configuration incorrectly sets -CC to `cc' instead of `cc -Ae'. As a workaround, the correct compiler -can be specified as part of the configuration vis: - - $ 'CC=cc -Ae' ./configure - - -s390*-*-* ---------- - -gdb/513: GDB does not build on s390 GNU/Linux. The problem should be -fixed in more recent sources. - - -i386-*-freebsd4.4* ------------------- - -gdb/455: GDB doesn't build on a FreeBSD 4.4-STABLE system. The -problem is still being investigated. - -alpha*-*-osf* -------------- - -gdb/816: When building GDB with GCC 3.0.1, GDB is unable to load a core -file properly. It generates several errors and warnings regarding -unhandled core file section types, incorrect endianness, the failure to -load the registers. Are also incorrectly reported: The program name, the -cause of the program death, and the call stack at the moment of the -death. This problem has been reported on alpha-osf4.0f and alpha-osf5.1a. -To work-around the problem, add -D__digital__ to the CFLAGS when -building GDB vis: - - $ make CFLAGS='-O2 -D__digital__' - - -i[3456]86-*-linux* ------------------- - -gdb/660: gdb does not build with linux libc5. The symptom is a parse -error before `uintptr_t'. Upgrade to glibc 2.1.3 or later, which -defines uintptr_t. - -gdb/1030: GNU binutils 2.12.1 and earlier versions do not work properly -with gdb. If you use GNU binutils, upgrade to version 2.13 or later. -You can check the version of binutils with the command: - - $ ld --version + http://sources.redhat.com/ml/gdb-prs/2003-q3/msg00190.html