Guest debugging support for KVM (Jan Kiszka)

This is a backport of the guest debugging support for the KVM
accelerator that is now part of the KVM tree. It implements the reworked
KVM kernel API for guest debugging (KVM_CAP_SET_GUEST_DEBUG) which is
not yet part of any mainline kernel but will probably be 2.6.30 stuff.
So far supported is x86, but PPC is expected to catch up soon.

Core features are:
 - unlimited soft-breakpoints via code patching
 - hardware-assisted x86 breakpoints and watchpoints

Changes in this version:
 - use generic hook cpu_synchronize_state to transfer registers between
   user space and kvm
 - push kvm_sw_breakpoints into KVMState

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6825 c046a42c-6fe2-441c-8c8c-71466251a162
6 files changed
tree: 4bf900c761e36db33146e5527baed9663cf9a785
  1. audio/
  2. bsd-user/
  3. darwin-user/
  4. fpu/
  5. gdb-xml/
  6. hw/
  7. keymaps/
  8. linux-user/
  9. pc-bios/
  10. slirp/
  11. target-alpha/
  12. target-arm/
  13. target-cris/
  14. target-i386/
  15. target-m68k/
  16. target-mips/
  17. target-ppc/
  18. target-sh4/
  19. target-sparc/
  20. tcg/
  21. tests/
  22. .gitignore
  23. a.out.h
  24. acl.c
  25. acl.h
  26. aes.c
  27. aes.h
  28. aio.c
  29. alpha-dis.c
  30. alpha.ld
  31. arm-dis.c
  32. arm-semi.c
  33. arm.ld
  34. balloon.h
  35. block-bochs.c
  36. block-cloop.c
  37. block-cow.c
  38. block-dmg.c
  39. block-nbd.c
  40. block-parallels.c
  41. block-qcow.c
  42. block-qcow2.c
  43. block-raw-posix.c
  44. block-raw-win32.c
  45. block-vmdk.c
  46. block-vpc.c
  47. block-vvfat.c
  48. block.c
  49. block.h
  50. block_int.h
  51. bswap.h
  52. bt-host.c
  53. bt-host.h
  54. bt-vhci.c
  55. buffered_file.c
  56. buffered_file.h
  57. cache-utils.c
  58. cache-utils.h
  59. Changelog
  60. cocoa.m
  61. configure
  62. console.c
  63. console.h
  64. COPYING
  65. COPYING.LIB
  66. cpu-all.h
  67. cpu-defs.h
  68. cpu-exec.c
  69. cris-dis.c
  70. curses.c
  71. curses_keys.h
  72. cutils.c
  73. d3des.c
  74. d3des.h
  75. def-helper.h
  76. device_tree.c
  77. device_tree.h
  78. dis-asm.h
  79. disas.c
  80. disas.h
  81. dma-helpers.c
  82. dma.h
  83. dyngen-exec.h
  84. elf.h
  85. elf_ops.h
  86. exec-all.h
  87. exec.c
  88. feature_to_c.sh
  89. gdbstub.c
  90. gdbstub.h
  91. gen-icount.h
  92. host-utils.c
  93. host-utils.h
  94. hostregs_helper.h
  95. hpet.h
  96. hppa-dis.c
  97. hppa.ld
  98. i386-dis.c
  99. i386.ld
  100. ia64.ld
  101. keymaps.c
  102. keymaps.h
  103. kqemu.c
  104. kqemu.h
  105. kvm-all.c
  106. kvm.h
  107. libfdt_env.h
  108. LICENSE
  109. loader.c
  110. m68k-dis.c
  111. m68k-semi.c
  112. m68k.ld
  113. MAINTAINERS
  114. Makefile
  115. Makefile.target
  116. migration-exec.c
  117. migration-tcp.c
  118. migration.c
  119. migration.h
  120. mips-dis.c
  121. mips.ld
  122. mipsel.ld
  123. monitor.c
  124. monitor.h
  125. nbd.c
  126. nbd.h
  127. net-checksum.c
  128. net.c
  129. net.h
  130. osdep.c
  131. osdep.h
  132. pci-ids.txt
  133. posix-aio-compat.c
  134. posix-aio-compat.h
  135. ppc-dis.c
  136. ppc.ld
  137. ppc64.ld
  138. qemu-aio.h
  139. qemu-binfmt-conf.sh
  140. qemu-char.c
  141. qemu-char.h
  142. qemu-common.h
  143. qemu-doc.texi
  144. qemu-img.c
  145. qemu-img.texi
  146. qemu-lock.h
  147. qemu-log.h
  148. qemu-malloc.c
  149. qemu-nbd.c
  150. qemu-nbd.texi
  151. qemu-sockets.c
  152. qemu-tech.texi
  153. qemu-timer.h
  154. qemu-tool.c
  155. qemu.sasl
  156. qemu_socket.h
  157. readline.c
  158. readline.h
  159. README
  160. rules.mak
  161. s390-dis.c
  162. s390.ld
  163. savevm.c
  164. sdl.c
  165. sdl_keysym.h
  166. sh4-dis.c
  167. softmmu-semi.h
  168. softmmu_defs.h
  169. softmmu_exec.h
  170. softmmu_header.h
  171. softmmu_template.h
  172. sparc-dis.c
  173. sparc.ld
  174. sparc64.ld
  175. sys-queue.h
  176. sysemu.h
  177. tap-win32.c
  178. texi2pod.pl
  179. thunk.c
  180. thunk.h
  181. TODO
  182. translate-all.c
  183. uboot_image.h
  184. usb-bsd.c
  185. usb-linux.c
  186. usb-stub.c
  187. VERSION
  188. vgafont.h
  189. vl.c
  190. vnc-auth-sasl.c
  191. vnc-auth-sasl.h
  192. vnc-auth-vencrypt.c
  193. vnc-auth-vencrypt.h
  194. vnc-tls.c
  195. vnc-tls.h
  196. vnc.c
  197. vnc.h
  198. vnc_keysym.h
  199. vnchextile.h
  200. x86_64.ld
  201. x_keymap.c
  202. x_keymap.h