From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Andrew D. Ball" Subject: [PATCH] extend qemu-dm.debug to use ddd for device model debugging Date: Fri, 06 Jan 2006 00:12:24 -0500 Message-ID: <1136524344.8615.2.camel@localhost.localdomain> Reply-To: aball@us.ibm.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-KQiFzDpAPTAjUhBUPuSz" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --=-KQiFzDpAPTAjUhBUPuSz Content-Type: text/plain Content-Transfer-Encoding: 7bit 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? -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" & --=-KQiFzDpAPTAjUhBUPuSz Content-Disposition: attachment; filename=qemu_debug.patch Content-Type: text/x-patch; name=qemu_debug.patch; charset=UTF-8 Content-Transfer-Encoding: 7bit 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" & --=-KQiFzDpAPTAjUhBUPuSz Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=-KQiFzDpAPTAjUhBUPuSz--