public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: gdb@sourceware.org
Cc: Paul Koning <paul_koning@dell.com>, Chris Sutcliffe <ir0nh34d@gmail.com>
Subject: Re: Cross debugger
Date: Thu, 16 Jun 2011 14:19:00 -0000	[thread overview]
Message-ID: <201106161518.41157.pedro@codesourcery.com> (raw)
In-Reply-To: <45C23430-D605-4D08-8380-BB4C6C772670@dell.com>

On Thursday 16 June 2011 14:52:24, Paul Koning wrote:
> 
> On Jun 16, 2011, at 7:53 AM, Chris Sutcliffe wrote:
> 
> > On 15 June 2011 22:53, Joel Brobecker wrote:
> >> What I don't understand is why you created a cross compiler/debugger,
> >> while it seems to me you could have just created a native x64 MinGW
> >> toolset.  That's what we do at AdaCore: We use cygwin as the build
> >> environment, but then build a MinGW toolset by configuring with
> >> --build=x86_64-pc-mingw32. As far as I know, the gdbserver will
> >> be automatically built.
> > 
> > Good point, for some reason I was thinking that since gdb would be
> > running withing the Cygwin environment I would need the
> > '--host=i686-pc-cygwin'.  If I build a native x64 MinGW gdb will it
> > understand Cygwin paths correctly?
> > 
> >>> (gdb) start
> >> [...]
> >>> Don't know how to run.  Try "help target".
> >> 
> >> And that's also expected, since you have a cross-debugger. So the
> >> debugger is expecting you to connect to the target where the process
> >> is running.
> > 
> > Ah, I didn't realize a cross-debugger could only be used to connect to
> > running process.
> 
> More precisely, it can attach to an already running process, or you can start a new one on the command line.  Either way, though, by the time gdb connects to gdbserver, the process already exists.  If you started it on the command line, it's on the first instruction (typically some sort of startup library code, well before "main").  So either way, you get things going by "continue".

That's a bit orthogonal to cross-debuggers.  It's "target remote"
that doesn't know how to "start".  "target extended-remote" does know.

When you're not already connected to a remote target, "run"/"start"
will try to run the program with the native debugger.  If there's
no native debugger in your gdb build (because you've built gdb as
a cross debugger only), then you'll see that message, because
your gdb doesn't know how to run the program natively.

Those commands _can_ be used with a cross-debugger.  You need to
connect to a remote target that knows how.  That is what the
--multi switch of gdbserver is for.  Start gdbserver with e.g.,

 "gdbserver --multi :9999"

and connect to it from gdb with "target extended-remote".

You can then use "run", "start", and "attach", just like you
would if you were debugging with a native debugger.

-- 
Pedro Alves

      reply	other threads:[~2011-06-16 14:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-16  2:00 Chris Sutcliffe
2011-06-16  2:54 ` Joel Brobecker
2011-06-16 11:54   ` Chris Sutcliffe
2011-06-16 13:54     ` Paul Koning
2011-06-16 14:19       ` Pedro Alves [this message]

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=201106161518.41157.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=gdb@sourceware.org \
    --cc=ir0nh34d@gmail.com \
    --cc=paul_koning@dell.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).