Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Jerry 85032 <jerry85032@gmail.com>
To: gdb@sourceware.org
Subject: Re: Newbie gdb / gdbserver question with x86-64 and -m32 g++ goodness
Date: Fri, 18 Jun 2010 18:26:00 -0000	[thread overview]
Message-ID: <28929351.post@talk.nabble.com> (raw)
In-Reply-To: <4C1BA085.2010607@vmware.com>



Michael Snyder-6 wrote:
> 
> Jerry 85032 wrote:
>> So I am new to using gdb and gdbserver.  And I'm trying to use it on a
>> pretty
>> complex program.  But that's okay, I can't get it to run on a simple
>> system,
>> so let's talk about that.
>> 
>> I created the usual c++ Hello World.  I have access to two identical
>> Centos
>> 5 development systems connected with tcp.
> ... 
>> If I compile my hello world with:
>> 
>> $ g++ -g hello.cpp -o hello
>> 
>> Then everything works pretty much as expected.  I can run it on either
>> system.  I can use gdb on one system, connect to gdbserver on the other
>> system, and everything seems to work fine.  I set a break at main on my
>> local system, gdbserver the program on the target, use gdb to tell it to
>> run, and Hello World prints out on the gdbserver system.
>> 
>> But if I compile it with -m32, and repeat the process, then the two
>> systems
>> seem to be fighting over architecture issues.  I receive messages like
>> register badly formatted.  Or "warning: Selected architecture i386 is not
>> compatible with reported target architecture i386:x86-64".  This seems to
>> happen regardless of how I tell gdb to set the architecture, either i386
>> or
>> i386:x86-64.
> 
> I believe you need to give the "set architecture" command
> before the "target remote" command.  This should work...
> 
> 

Thanks for the response.  But I tried to follow your suggestions, and still
I'm not seeing it work.  If you have any more suggestions, I am certainly
interested in hearing them.

Thanks,

Jerry

Here are three runs:
==============================

For each run, the remote gdbserver said:

$ gdbserver --multi rdev6:2010 hello
Process hello created; pid = 32603
Listening on port 2010
Remote debugging from host 134.51.26.149
readchar: Got EOF
Remote side has terminated connection.  GDBserver will reopen the
connection.
Listening on port 2010

And on our local:

==============================
Assuming it is i386, 32 bit setting archi to i386, then connecting
note: on the gdb side, the executable hasn't been specified or loaded

$ gdb
GNU gdb Fedora (6.8-37.el5)
his GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) set archi i386
The target architecture is assumed to be i386
(gdb) target extended-remote rdev6:2010
Remote debugging using rdev6:2010
warning: Selected architecture i386 is not compatible with reported target
architecture i386:x86-64
Remote register badly formatted:
T0506:0000000000000000;07:b0dcdfff00000000;10:1018620000000000;thread:7f5b;
here: 0000000;07:b0dcdfff00000000;10:1018620000000000;thread:7f5b;
Try to load the executable by `file' first,
you may also check `set/show architecture'.
(gdb) 

==============================

Assuming it is i386 32 bit, setting archi to i386, then connecting
note: on the gdb side, the executable has been loaded with file

$ gdb
GNU gdb Fedora (6.8-37.el5)
his GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) set archi i386
The target architecture is assumed to be i386
(gdb) file hello
Reading symbols from /home/j/hello...done.
(gdb) target extended-remote rdev6:2010
Remote debugging using rdev6:2010
warning: Selected architecture i386 is not compatible with reported target
architecture i386:x86-64
Remote register badly formatted:
T0506:0000000000000000;07:b0dcdfff00000000;10:1018620000000000;thread:7f5b;
here: 0000000;07:b0dcdfff00000000;10:1018620000000000;thread:7f5b;
Try to load the executable by `file' first,
you may also check `set/show architecture'.
(gdb) sho archi
The target architecture is assumed to be i386
(gdb) 

==============================

Assuming it is i386:x86-64, setting archi to i386, then connecting
note: on the gdb side, the executable has been loaded with file

$ gdb 
GNU gdb Fedora (6.8-37.el5)
This GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) set archi i386:x86-64
The target architecture is assumed to be i386:x86-64
(gdb) file hello
Reading symbols from /home/j/hello...done.
(gdb) show archi
The target architecture is assumed to be i386:x86-64
(gdb) target extended-remote rdev6:2010
Remote debugging using rdev6:2010
[New Thread 32667]
Cannot access memory at address 0x800000008
(gdb) 



-- 
View this message in context: http://old.nabble.com/Newbie-gdb---gdbserver-question-with-x86-64-and--m32-g%2B%2B-goodness-tp28922383p28929351.html
Sent from the Sourceware - gdb list mailing list archive at Nabble.com.


  reply	other threads:[~2010-06-18 18:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-18  6:58 Jerry 85032
2010-06-18 16:36 ` Michael Snyder
2010-06-18 18:26   ` Jerry 85032 [this message]
2010-06-18 18:47     ` Michael Snyder
2010-06-19  3:25 ` Ulrich Weigand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28929351.post@talk.nabble.com \
    --to=jerry85032@gmail.com \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox