This is the mail archive of the gdb@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]

Re: gdb & 64-bit Solaris - does it work?



Andrew Cagney wrote:


Has anyone had any luck getting any version of gdb to work on a 64-bit Solaris 7 binary built with gcc 3.2? I have tried both gdb-5.3 and gdb-6.0 (last night's CVS image) and end up with the same "Cannot insert breakpoint" error. Searching the gdb mailing list, reveals many other people getting the same error and the gdb bug database has several bugs related to this.

Does gdb support debugging 64-bit Solaris binaries or am I trying to make it do something it can't do?

Here's another example of the error:

[caude@phobos]$ more hello.c
#include <stdio.h>

int
main(int argc, char **argv)
{
printf ("Hello World\n");
}
[caude@phobos]$ gcc-3.2 -m64 -g -o hello hello.c
[caude@phobos]$ gdb64-5.3 hello
GNU gdb 5.3
Copyright 2002 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.7"...
(gdb) run
Starting program: /home/jupiter8/caude/hello
Hello World


Program exited with code 014.
(gdb) br main
Breakpoint 1 at 0x860: file hello.c, line 6.


Is main really at 0x860? What does nm indicate?

No it is not. It looks gdb is trying to insert the breakpoint at the wrong address:


[caude@phobos /home/jupiter8/caude]$ gcc-3.2 -g -m64 -o hello hello.c
[caude@phobos /home/jupiter8/caude]$ nm -t x hello | grep main
[79] |0x000100000850|0x000000000040|FUNC |GLOB |0 |9 |main
[caude@phobos /home/jupiter8/caude]$ gdb64-5.3 hello
GNU gdb 5.3
Copyright 2002 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.7"...
(gdb) br main
Breakpoint 1 at 0x860: file hello.c, line 6.


(gdb) run
Starting program: /home/jupiter8/caude/hello
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0x860: I/O error.
The same program may be running in another process.
(gdb) q
The program is running.  Exit anyway? (y or n) y


Was GDB configured with:
    CC="gcc -m64" .../configure
before the build?  It oterwize won't groak a 64 bit binary.

Yes, that is exactly how we built gdb.


I people are noticing bugs in the sparc but not much is happening to fix them :-(

Andrew

It appears that the problem may be with gcc v3.2. I was able use gcc v3.3 and debug a 64-bit test binary using gdb v5.3 without any problems...


- Chuck



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