[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] debugging xen ....



I've been trying this approach, trying xend tools and vm-tools.
I actually make the most progress using xend tools.

I'm able to create a domain (paused), set up the gdbserver, connect gdb
and set a breakpoint.   I can then unpause the domain and it runs until
it hits the breakpoint I set (which is in netfront.c).

However, when that breakpoint is hit, the domU kernel oopses, rather
than re-directing the exception to the gdbserver.

Did I miss something?

(And with vm-tools  when I unpause the domain I get one line of console
output and that's all.)

-- 
Michal Ostrowski

On Tue, 23 Aug 2005 21:30:54 -1000 (HST) Tim
Newsham <newsham@xxxxxxxx> wrote:

> > After looking around for a howto and asking ppl on IRC, I had to come back
> > to the forum for this - how to debug xen?
> >
> > Basically, I would love to be able to step through the code using gdb 
> > connected
> > serially to another machine.
> >
> > Is there some functionality like that in Xen. I also found some emails 
> > referencing
> > a XenDebugger-HowTo, however I couldn't find that file anywhere.
> 
> Run the build script in xen-unstable.hg/tools/debugger/gdb.
> Install the gdbserver and gdb (I put them in /usr/local/bin
>    as gdbserver-xen and xengdb).
> Build your kernel with debug.  I use the flags
>    "verbose=y domu_debug=y debug=y".  although I dont know if these
>    are all required.
> Start up your domain (I use vm-tools and do all the steps except
>    the vm-pause step).
> Run gdbserver.  I run "gdbserver-xen 127.0.0.1:9999 --attach $dom"
> Run gdb.  I run "xengdb -x remgdb" where remgdb has the command
>    "target remote 127.0.0.1:9999" in it.
> 
> Tada, you're in a debugger.
> 
> I use the following script to automate this tedious process:
> 
> --- deb.sh ---
> #!/bin/sh
> 
> run()
> {
>          echo "$*"
>          $* || (echo 'failed'; exit 1)
> }
> 
> # vm-create isnt giving us the right answer...
> dom=`vm-create`
> echo dom is $dom
> 
> run vm-memory -m $dom 64m
> run vm-memory -i $dom 64m
> run vm-build.linux $dom /root/kernel
> 
> echo done $dom
> gdbserver-xen 127.0.0.1:9999 --attach $dom &
> sleep 1
> xengdb -x /root/remgdb
> 
> run vm-pause -u $dom
> --- end deb.sh ---
> 
> > Himanshu Raj
> > PhD Student, GaTech (www.cc.gatech.edu/~rhim)
> 
> Hope this helps,
> Tim Newsham
> http://www.lava.net/~newsham/
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel


Attachment: pgpzDlYaCEo08.pgp
Description: PGP signature

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.