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

Re: [Xen-devel] how to debug xen?



One non-obvious thing that I didn't see in the docs is that if you use
multiple nsplitds they have to be spaced 4 ports apart not 2.

                        -Kip



On Fri, 23 Jul 2004, David Becker wrote:

>
> " How to debug xen? just use the nsplitd as XenDebugger-HOWTO said? It seems
> " quite tricky. I believe lots of people are doing development on xen, so
> " usually how to debug it?
>
> This is how I debug xen.  The starting point is reading
>     xeno-unstable.bk/docs/HOWTOs/XenDebugger-HOWTO
> I do not use nsplitd.
>
> First, build debug kernels.
> For xen, in the xeno-unstable.bk/xen directory add this to arch/x86/Rules.mk
>         CFLAGS += -g
>     and build xen saying
>         make debugger=y
> For xenolinux,  in xeno-unstable.bk/linux-2.4.26-xen0
>     turn on CONFIG_FRAME_POINTER (in the Kernel Hacking section of
>         menuconfig or xconfig)
>     in Makefile put -g into CFLAGS_KERNEL (line 52)
>         CFLAGS_KERNEL = -g
>     and build xenolinux with
>         make ARCH=xen bzImage
>
>
> Second, find a target machine with some serial lines.
> I prefer virtual machines and use VMware Workstation 4.5 on Linux (4.0 didn't
> work, btw).  In the vmware Machine Settings, config both com1 and com2
> to be named pipes with "This end is the client" and "The other end is a
> virtual machine".   Run two socat jobs in the background
> to convert the pipes to ptys:
>     socat UNIX-LISTEN:/tmp/com1pipe,unlink-early,fork pty,link=/tmp/com1 &
>     socat UNIX-LISTEN:/tmp/com2pipe,unlink-early,fork pty,link=/tmp/com2 &
>
>
> Third, boot the target machine and connect the debugger.
> Put the debug xen and xenolinux on the machine.  In the grub menu.lst
> file, add the serial lines and pdb to the xen command line:
>    kernel /boot/xen.gz.debug dom0_mem=100000 ifname=eth0 com1=9600,8n1 
> com2=9600,8n1 pdb=com2
> Boot it up and connect to the console.  In my vmware setup, I connect
> to com1 from the machine hosting VMware with
>     kermit -c -l /tmp/com1
> Then on com1 type ^A^A^A to make xen listen to console cmds.
> At this point type 'h' and see if the 'D' command is listed.  If not,
> pdb is missing so make sure the xen being run was built with debugger=y.
> Hit 'D' on the console to make xen drop into the debugger.
>
> >From the machine listening to the serial lines, connect to the target machine
> with gdb and the xen-syms file and check if was built with -g by trying to
> list a function:
>     $ gdb xeno-unstable.bk/xen/xen-syms
>     (gdb) list do_dom0_op
>     26      extern unsigned int alloc_new_dom_mem(struct domain *,
>     unsigned int);
>     27      extern long arch_do_dom0_op(dom0_op_t *op, dom0_op_t
>     *u_dom0_op);
>     28      extern void arch_getdomaininfo_ctxt(struct domain *,
>     full_execution_context_t *);
>     29
>     30      long do_dom0_op(dom0_op_t *u_dom0_op)
>     31      {
>     32          long ret = 0;
>     33          dom0_op_t curop, *op = &curop;
>     34
>     35          if ( !IS_PRIV(current) )
>     (gdb) target remote /tmp/com2
> Now you can debug xen itself.  Note that the breakpoint is in xenolinux
> so gdb will be cryptic about the current function and stacktrace.  Put a
> breakpoint in xen somewhere and continue to get gdb to a function is can
> decode.
>
> To debug xenolinux, drop to the debugger:
>    (gdb) set pdb_ctx.domain=0
>    (gdb) set pdb_ctx.valid=1
>    (gdb) add-symbol-file xeno-unstable.bk/linux-2.4.26-xen0/vmlinux
> Now you can debug vmlinux itself (except where the xen and linux
> symbols clash).
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/xen-devel
>


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

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