]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/python | |
2 | ||
3 | # GDB debugging support | |
4 | # | |
5 | # Copyright 2012 Red Hat, Inc. and/or its affiliates | |
6 | # | |
7 | # Authors: | |
8 | # Avi Kivity <avi@redhat.com> | |
9 | # | |
10 | # This work is licensed under the terms of the GNU GPL, version 2. See | |
11 | # the COPYING file in the top-level directory. | |
12 | # | |
13 | # Contributions after 2012-01-13 are licensed under the terms of the | |
14 | # GNU GPL, version 2 or (at your option) any later version. | |
15 | ||
16 | # Usage: | |
17 | # At the (gdb) prompt, type "source scripts/qemu-gdb.py". | |
18 | # "help qemu" should then list the supported QEMU debug support commands. | |
19 | ||
20 | import gdb | |
21 | ||
22 | import os, sys | |
23 | ||
24 | # Annoyingly, gdb doesn't put the directory of scripts onto the | |
25 | # module search path. Do it manually. | |
26 | ||
27 | sys.path.append(os.path.dirname(__file__)) | |
28 | ||
29 | from qemugdb import aio, mtree, coroutine | |
30 | ||
31 | class QemuCommand(gdb.Command): | |
32 | '''Prefix for QEMU debug support commands''' | |
33 | def __init__(self): | |
34 | gdb.Command.__init__(self, 'qemu', gdb.COMMAND_DATA, | |
35 | gdb.COMPLETE_NONE, True) | |
36 | ||
37 | QemuCommand() | |
38 | coroutine.CoroutineCommand() | |
39 | mtree.MtreeCommand() | |
40 | aio.HandlersCommand() | |
41 | ||
42 | coroutine.CoroutineSPFunction() | |
43 | coroutine.CoroutinePCFunction() | |
44 | ||
45 | # Default to silently passing through SIGUSR1, because QEMU sends it | |
46 | # to itself a lot. | |
47 | gdb.execute('handle SIGUSR1 pass noprint nostop') |