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

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@xxxxxxxxxx
'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@xxxxxxxxxx>
Signed-off-by: Andrew D. Ball <aball@xxxxxxxxxx>

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@xxxxxxxxxx>
+# Andrew D. Ball <aball@xxxxxxxxxx>
+ +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@xxxxxxxxxx>
Signed-off-by: Andrew D. Ball <aball@xxxxxxxxxx>

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@xxxxxxxxxx>
+# Andrew D. Ball <aball@xxxxxxxxxx>
+ +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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
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®.