This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/279: Severe debugging problems (gdb vs gcc 3.1)



>Number:         279
>Category:       gdb
>Synopsis:       Severe debugging problems (gdb vs gcc 3.1)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 19 16:58:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Peter Schmid
>Release:        gdb 20020118
>Organization:
>Environment:
Linux kiste 2.4.17 #7 Thu Jan 3 17:21:51 CET 2002 i686 
SuSE 7.3
glibc 2.2.4
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc
>Description:
Debugging c++ code compiled by gcc 3.1 does not work. For example, consider the following code tl.C. 

The most recent gdb snapshot emits the strange 
"Locale = {static none = Internal: global symbol`_ZNSt6locale4noneE' found in .
./../../../gcc/libstdc++-v3/src/locale.cc psymtab but not in symtab.
_ZNSt6locale4noneE may be an inlined function, or may be a template function
(if a template, try specifying an instantiation:
_ZNSt6locale4noneE<type>)" 
message. 

Printing the variable Locale does not work, either. There is a "Cannot access memory at address 0x0" message, all following methods and variables are not accessible by the debugger, making debugging of c++ programs nearly impossible. 

The most recent gdb 5.1 snapshot does not emit the psymtab/symtab message but the problems encountered are the same.
>How-To-Repeat:
Source code tl.C
#include <locale>

int main()
{
  std::locale Locale("");
  int i;
}

Compiling tl.C
g++ -v -o tl tl.C -W -Wall -g
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc
Thread model: posix
gcc version 3.1 20020117 (experimental)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -W -Wall -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ tl.C -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase tl.C -g -W -Wall -version -o /tmp/cca5id1E.s
GNU CPP version 3.1 20020117 (experimental) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.1 20020117 (experimental) (i686-pc-linux-gnu)
	compiled by GNU C version 3.1 20020117 (experimental).
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++-v3
 /usr/local/include/g++-v3/i686-pc-linux-gnu
 /usr/local/include/g++-v3/backward
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include
 /usr/include
End of search list.
tl.C: In function `int main()':
tl.C:6: warning: unused variable `int i'
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../../i686-pc-linux-gnu/bin/as -V -Qy -o /tmp/cccnyR3V.o /tmp/cca5id1E.s
GNU assembler version 2.11.92.0.12.3 (i686-pc-linux-gnu) using BFD version 2.11.92.0.12.3 20011121
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o tl /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtbegin.o -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1 -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../../i686-pc-linux-gnu/lib -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../.. /tmp/cccnyR3V.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtend.o /usr/lib/crtn.o

Debugging tl.C
GNU gdb 20020118
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) b main
Breakpoint 1 at 0x8048990: file tl.C, line 5.
(gdb) r
Starting program: ./tl 

Breakpoint 1, main () at tl.C:5
(gdb) n
(gdb) info locals
Locale = {static none = Internal: global symbol `_ZNSt6locale4noneE' found in ../../../../gcc/libstdc++-v3/src/locale.cc psymtab but not in symtab.
_ZNSt6locale4noneE may be an inlined function, or may be a template function
(if a template, try specifying an instantiation: _ZNSt6locale4noneE<type>).
(gdb) p Locale
$1 = {static none = 0, static ctype = 1, static numeric = 2, 
  static collate = 4, static time = 8, static monetary = 16, 
  static messages = 32, static all = 63, _M_impl = 0x804ac08, 
  static _S_classic = Cannot access memory at address 0x0
(gdb)
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]