Andrew D. Ball
2006-Jan-06 05:12 UTC
[Xen-devel] [PATCH] extend qemu-dm.debug to use ddd for device model debugging
This patch modifies the qemu-dm.debug shell script to call ddd. I have tested it with xm-test against xen-unstable.hg changeset 8497, with no evidence of regression. Andrew =================Andrew D. Ball aball@us.ibm.com ''Festina lente'' Add support to the qemu-dm.debug script to launch a ddd window running gdb on the device model for fully virtualized domU''s. Signed-off-by: Chip Blach <chipper@us.ibm.com> Signed-off-by: Andrew D. Ball <aball@us.ibm.com> diff -r 9efe7eb108e1 tools/examples/xmexample.vmx --- a/tools/examples/xmexample.vmx Wed Jan 4 17:51:38 2006 +++ b/tools/examples/xmexample.vmx Thu Jan 5 18:10:24 2006 @@ -100,6 +100,15 @@ # New stuff device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm'' +# Use this instead for device model debugging [launches ddd in a new window +# for qemu-dm] +# +# To get debugging symbols in qemu-dm, you can copy +# tools/ioemu/target-i386-dm/qemu-dm from a built Xen source tree to +# /usr/lib/xen/bin/qemu-dm or /usr/lib64/xen/bin/qemu-dm , depending +# on where your qemu-dm sits +#device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm.debug'' + #----------------------------------------------------------------------------- # Disk image for diff -r 9efe7eb108e1 tools/ioemu/target-i386-dm/qemu-dm.debug --- a/tools/ioemu/target-i386-dm/qemu-dm.debug Wed Jan 4 17:51:38 2006 +++ b/tools/ioemu/target-i386-dm/qemu-dm.debug Thu Jan 5 18:10:24 2006 @@ -1,5 +1,26 @@ -#!/bin/sh +#!/bin/bash +# Subject to GPL version 2 license. +# +# Chip Blach <chipper@us.ibm.com> +# Andrew D. Ball <aball@us.ibm.com> + +cd ~root # why does ~ mean ''/'' instead of ''/root'' here? -echo $* > /tmp/args -echo $DISPLAY >> /tmp/args -exec /usr/lib/xen/bin/qemu-dm $* +if [[ -z "$IOEMU" ]] +then + # Guess where the device model (qemu-dm) sits, based + # on architecture + if [[ $(uname -p) == ''x86_64'' ]] + then + IOEMU=/usr/lib64/xen/bin/qemu-dm + else + IOEMU=/usr/lib/xen/bin/qemu-dm + fi +fi + +# set up gdb +echo "file $IOEMU" > ioemu_debug +echo "set args $@" >> ioemu_debug +echo "break main" >> ioemu_debug + +nohup ddd --gdb --debugger "gdb -x ioemu_debug" & _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Anthony Liguori
2006-Jan-06 17:42 UTC
Re: [Xen-devel] [PATCH] extend qemu-dm.debug to use ddd for device model debugging
Andrew D. Ball wrote:>This patch modifies the qemu-dm.debug shell script to call ddd. I have tested it with >xm-test against xen-unstable.hg changeset 8497, with no evidence of regression. > >Andrew > >=================>Andrew D. Ball >aball@us.ibm.com >''Festina lente'' > > >Add support to the qemu-dm.debug script to launch a ddd window running >gdb on the device model for fully virtualized domU''s. > >Signed-off-by: Chip Blach <chipper@us.ibm.com> >Signed-off-by: Andrew D. Ball <aball@us.ibm.com> > >diff -r 9efe7eb108e1 tools/examples/xmexample.vmx >--- a/tools/examples/xmexample.vmx Wed Jan 4 17:51:38 2006 >+++ b/tools/examples/xmexample.vmx Thu Jan 5 18:10:24 2006 >@@ -100,6 +100,15 @@ > > # New stuff > device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm'' >+# Use this instead for device model debugging [launches ddd in a new window >+# for qemu-dm] >+# >+# To get debugging symbols in qemu-dm, you can copy >+# tools/ioemu/target-i386-dm/qemu-dm from a built Xen source tree to >+# /usr/lib/xen/bin/qemu-dm or /usr/lib64/xen/bin/qemu-dm , depending >+# on where your qemu-dm sits >+#device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm.debug'' >+ > > #----------------------------------------------------------------------------- > # Disk image for >diff -r 9efe7eb108e1 tools/ioemu/target-i386-dm/qemu-dm.debug >--- a/tools/ioemu/target-i386-dm/qemu-dm.debug Wed Jan 4 17:51:38 2006 >+++ b/tools/ioemu/target-i386-dm/qemu-dm.debug Thu Jan 5 18:10:24 2006 >@@ -1,5 +1,26 @@ >-#!/bin/sh >+#!/bin/bash >+# Subject to GPL version 2 license. >+# >+# Chip Blach <chipper@us.ibm.com> >+# Andrew D. Ball <aball@us.ibm.com> >+ >+cd ~root # why does ~ mean ''/'' instead of ''/root'' here? >~/ expands to the current users home directory. ~word expands to user word''s home directory. You may want to check for ddd and just invoke gdb if ddd is not available. Regards, Anthony Liguori> >-echo $* > /tmp/args >-echo $DISPLAY >> /tmp/args >-exec /usr/lib/xen/bin/qemu-dm $* >+if [[ -z "$IOEMU" ]] >+then >+ # Guess where the device model (qemu-dm) sits, based >+ # on architecture >+ if [[ $(uname -p) == ''x86_64'' ]] >+ then >+ IOEMU=/usr/lib64/xen/bin/qemu-dm >+ else >+ IOEMU=/usr/lib/xen/bin/qemu-dm >+ fi >+fi >+ >+# set up gdb >+echo "file $IOEMU" > ioemu_debug >+echo "set args $@" >> ioemu_debug >+echo "break main" >> ioemu_debug >+ >+nohup ddd --gdb --debugger "gdb -x ioemu_debug" & > > > >------------------------------------------------------------------------ > >Add support to the qemu-dm.debug script to launch a ddd window running >gdb on the device model for fully virtualized domU''s. > >Signed-off-by: Chip Blach <chipper@us.ibm.com> >Signed-off-by: Andrew D. Ball <aball@us.ibm.com> > >diff -r 9efe7eb108e1 tools/examples/xmexample.vmx >--- a/tools/examples/xmexample.vmx Wed Jan 4 17:51:38 2006 >+++ b/tools/examples/xmexample.vmx Thu Jan 5 18:10:24 2006 >@@ -100,6 +100,15 @@ > > # New stuff > device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm'' >+# Use this instead for device model debugging [launches ddd in a new window >+# for qemu-dm] >+# >+# To get debugging symbols in qemu-dm, you can copy >+# tools/ioemu/target-i386-dm/qemu-dm from a built Xen source tree to >+# /usr/lib/xen/bin/qemu-dm or /usr/lib64/xen/bin/qemu-dm , depending >+# on where your qemu-dm sits >+#device_model = ''/usr/'' + arch_libdir + ''/xen/bin/qemu-dm.debug'' >+ > > #----------------------------------------------------------------------------- > # Disk image for >diff -r 9efe7eb108e1 tools/ioemu/target-i386-dm/qemu-dm.debug >--- a/tools/ioemu/target-i386-dm/qemu-dm.debug Wed Jan 4 17:51:38 2006 >+++ b/tools/ioemu/target-i386-dm/qemu-dm.debug Thu Jan 5 18:10:24 2006 >@@ -1,5 +1,26 @@ >-#!/bin/sh >+#!/bin/bash >+# Subject to GPL version 2 license. >+# >+# Chip Blach <chipper@us.ibm.com> >+# Andrew D. Ball <aball@us.ibm.com> >+ >+cd ~root # why does ~ mean ''/'' instead of ''/root'' here? > >-echo $* > /tmp/args >-echo $DISPLAY >> /tmp/args >-exec /usr/lib/xen/bin/qemu-dm $* >+if [[ -z "$IOEMU" ]] >+then >+ # Guess where the device model (qemu-dm) sits, based >+ # on architecture >+ if [[ $(uname -p) == ''x86_64'' ]] >+ then >+ IOEMU=/usr/lib64/xen/bin/qemu-dm >+ else >+ IOEMU=/usr/lib/xen/bin/qemu-dm >+ fi >+fi >+ >+# set up gdb >+echo "file $IOEMU" > ioemu_debug >+echo "set args $@" >> ioemu_debug >+echo "break main" >> ioemu_debug >+ >+nohup ddd --gdb --debugger "gdb -x ioemu_debug" & > > >------------------------------------------------------------------------ > >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.xensource.com >http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel