> I'm having gdb-5.0 act oddly in the following code:
Could I suggest downloading a current GDB snapshot from
http://sources.redhat.com/gdb/#download and then seeing if the problem
sitll occures.
If it does still occure, could I suggest, as well as your on going
investigation, recording your analysis as a bug report see
http://sources.redhat.com/gdb/#bugs .
Andrew
> class A {
> public:
> A() { }
> private:
> static unsigned u2u(unsigned);
> };
>
> unsigned A::u2u(unsigned u) {
> return u/2;
> }
>
> int main() {
> A a;
> return 0;
> }
>
> I attached g++ --verbose ; the same happens with 2.95.3
>
> Then I do:
> > gdb foo
> GNU gdb 5.0
> Copyright 2000 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 "sparc-sun-solaris2.8"...
> (gdb) b main
> Breakpoint 1 at 0x1063c: file foo.cpp, line 13.
> (gdb) run
> Starting program: /home/bhudson/livingstone/mba/cpp/foo
>
> Breakpoint 1, main () at foo.cpp:13
> 13 A a;
> (gdb) p A::u2u(10)
> $1 = 5
> (gdb) b A::A
> Breakpoint 2 at 0x10708: file foo.cpp, line 3.
> (gdb) c
> Continuing.
>
> Breakpoint 2, A::A (this=0xffbef82f) at foo.cpp:3
> 3 A() { }
> (gdb) p A::u2u(10)
> $2 = 5
> (gdb) p u2u(10)
> $3 = 2145352727
> (gdb) p this
> $4 = (A *) 0xffbef82f
> (gdb) p (unsigned)this
> $5 = 4290705455
> (gdb) p $5/2
> $6 = 2145352727
>
>
> So it seems gdb isn't quite always picking up that u2u is static.
>
> Worse, if I quit gdb and start again, and do everything above except trying
> the fully-qualified name, gdb crashes (SEGV). That doesn't happen if I
> just type 'run' again.
>
> So the workaround is easy enough: when calling a static function, provide
> the fully-qualified name. It's just a pain in the ass.
>
> -- Beno�t
>
>
>
>> g++ foo.cpp -o foo -g --verbose
>
> Reading specs from /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/specs
> gcc version 2.95.2 19991024 (release)
> /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
>-D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__
>-D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun
>-D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -g -D__GCC_NEW_VARARGS__
>-Acpu(sparc) -Amachine(sparc) foo.cpp /var/tmp/cckWNkDv.ii
> GNU CPP version 2.95.2 19991024 (release) (sparc)
> #include "..." search starts here:
> #include <...> search starts here:
> /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../include/g++-3
> /opt/sfw/include
>
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../sparc-sun-solaris2.8/include
> /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include
> /usr/include
> End of search list.
> The following default directories have been omitted from the search path:
> End of omitted list.
> /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/cc1plus /var/tmp/cckWNkDv.ii
>-quiet -dumpbase foo.cc -g -version -o /var/tmp/cc4wqecS.s
> GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.8) compiled by GNU C
>version 2.95.2 19991024 (release).
> /usr/ccs/bin/as -V -Qy -s -o /var/tmp/cc8raJXj.o /var/tmp/cc4wqecS.s
> /usr/ccs/bin/as: Sun WorkShop 6 99/08/18
> /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/collect2 -V -Y
>P,/usr/ccs/lib:/usr/lib -Qy -o foo
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crt1.o
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crti.o /usr/ccs/lib/values-Xa.o
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crtbegin.o
>-L/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2
>-L/opt/sfw/sparc-sun-solaris2.8/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/opt/sfw/lib
>/var/tmp/cc8raJXj.o -lstdc++ -lm -lgcc -lc -lgcc
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crtend.o
>/opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crtn.o
> ld: Software Generation Utilities - Solaris-ELF (4.0)
>
_______________________________________________
Bug-gdb mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gdb