From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH] extend qemu-dm.debug to use ddd for device model debugging Date: Fri, 06 Jan 2006 11:42:50 -0600 Message-ID: <43BEAC1A.10304@us.ibm.com> References: <1136524344.8615.2.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1136524344.8615.2.camel@localhost.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: aball@us.ibm.com Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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 >Signed-off-by: Andrew D. Ball > >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 >+# Andrew D. Ball >+ >+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 >Signed-off-by: Andrew D. Ball > >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 >+# Andrew D. Ball >+ >+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 > >