diff options
Diffstat (limited to 'scripts/qemu-gdb.py')
-rw-r--r-- | scripts/qemu-gdb.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/qemu-gdb.py b/scripts/qemu-gdb.py new file mode 100644 index 000000000..4d2a9f6c4 --- /dev/null +++ b/scripts/qemu-gdb.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# +# GDB debugging support +# +# Copyright 2012 Red Hat, Inc. and/or its affiliates +# +# Authors: +# Avi Kivity <avi@redhat.com> +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +# Usage: +# At the (gdb) prompt, type "source scripts/qemu-gdb.py". +# "help qemu" should then list the supported QEMU debug support commands. + +import gdb + +import os, sys + +# Annoyingly, gdb doesn't put the directory of scripts onto the +# module search path. Do it manually. + +sys.path.append(os.path.dirname(__file__)) + +from qemugdb import aio, mtree, coroutine, tcg, timers + +class QemuCommand(gdb.Command): + '''Prefix for QEMU debug support commands''' + def __init__(self): + gdb.Command.__init__(self, 'qemu', gdb.COMMAND_DATA, + gdb.COMPLETE_NONE, True) + +QemuCommand() +coroutine.CoroutineCommand() +mtree.MtreeCommand() +aio.HandlersCommand() +tcg.TCGLockStatusCommand() +timers.TimersCommand() + +coroutine.CoroutineSPFunction() +coroutine.CoroutinePCFunction() +coroutine.CoroutineBt() + +# Default to silently passing through SIGUSR1, because QEMU sends it +# to itself a lot. +gdb.execute('handle SIGUSR1 pass noprint nostop') |