From: Michael Snyder <Michael.Snyder@palmsource.com>
To: Cai Qian <caiqian@gmail.com>
Cc: gdb@sourceware.org
Subject: Re: Virtual Machine and GDB
Date: Mon, 21 Aug 2006 19:13:00 -0000 [thread overview]
Message-ID: <1156187604.9010.5.camel@localhost.localdomain> (raw)
In-Reply-To: <a96350810608211149y12e89af0p61f73eb6a67604d8@mail.gmail.com>
On Mon, 2006-08-21 at 19:49 +0100, Cai Qian wrote:
> Hi,
>
> On 8/21/06, Michael Snyder <Michael.Snyder@palmsource.com> wrote:
> > On Mon, 2006-08-21 at 18:59 +0100, Cai Qian wrote:
> > > Hi,
> > >
> > > On 8/21/06, Neo <cjia@cse.unl.edu> wrote:
> > > > Cai,
> > > >
> > > > I am wondering why you need to debug the VM remotely. Maybe you have
> > > > your own requirements, such as for embedded systems. But I think you
> > > > need to first make sure you can debug any binary running on your target
> > > > board remotely. Then, you can treat the VM as the rest ordinary binary.
> > > >
> > >
> > > I don't want to debug VM itself here, but executable running on the
> > > VM. As my VM has a new instruction set, and GDB is quite unlikely to
> > > run locally.
> >
> > OK, so you have two issues:
> > 1) You need to get gdbserver running in your VM, and provide
> > some means for gdbserver to talk to a gdb that is running in the
> > outside world. Unles you have access to a serial port, the
> > obvious way to do this is to get a IP stack running in the VM,
> > assign it an IP address, and let gdbserver open up a socket.
> > Then gdb (running somewhere outside of the VM) can attach to
> > the socket.
> >
>
> I have implemented a debug server in VM. At the moment, it can read
> the RSP messages from remote GDB through socket. So, I think I have
> done this part.
Great...
> > 2) You need to teach gdb to understand the architecture of
> > your virtual machine -- the word size, the instruction language,
> > the register set, and so forth. That doesn't mean porting gdb
> > to RUN on the VM -- it just means teaching gdb how to DEBUG
> > the VM (meaning, debug something that is running in the VM).
> >
>
> How can I achieve this part? At the moment, after received a packet
> from remote GDB, I am trying to parse the packet first, and then send
> the right response to GDB. For example, if VM received a "info
> registers" command at the debug socket, it will try to collect
> register information, and then generate a right RSP message back. Or,
> if it received "next", I can set a flag in VM to indicate to only
> execute one instruction. Is that a right way to do?
Well, what's the register set of your VM? Is it a virtual pentium?
In that case, you have nothing to do except make sure that the gdb
was configured and built with --target=i386-xxx. Similarly if the
virtual machine is (or pretends to be) any other known architecture.
If it's emulating some new, previously unknown architecture with a
unique register set and instruction set, then you need to do what
we call a target base port of gdb -- that is, teach gdb how to
interpret this new machine architecture.
next prev parent reply other threads:[~2006-08-21 19:13 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-20 21:10 Cai Qian
2006-08-21 0:07 ` Daniel Jacobowitz
2006-08-21 0:24 ` Cai Qian
2006-08-21 1:54 ` Daniel Jacobowitz
[not found] ` <daef60380608201849o49825a32s135b8131807ee71f@mail.gmail.com>
2006-08-21 10:25 ` Cai Qian
2006-08-21 11:38 ` teawater
2006-08-21 12:22 ` Cai Qian
2006-08-21 12:48 ` Daniel Jacobowitz
2006-08-21 13:35 ` teawater
2006-08-21 17:04 ` Neo
2006-08-21 17:59 ` Cai Qian
2006-08-21 18:28 ` Michael Snyder
2006-08-21 18:32 ` Daniel Jacobowitz
2006-08-21 18:50 ` Cai Qian
2006-08-21 19:13 ` Michael Snyder [this message]
2006-08-21 18:30 ` Neo
2006-08-21 18:57 ` Cai Qian
2006-08-21 19:16 ` Michael Snyder
2006-08-22 1:21 ` teawater
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
2006-08-22 6:26 Anupama Chandwani
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=1156187604.9010.5.camel@localhost.localdomain \
--to=michael.snyder@palmsource.com \
--cc=caiqian@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