如何在qemu中的来宾计算机上使用gdb观看内存访问?

时间:2016-09-29 06:32:46

标签: gdb qemu watchpoint

我可以在线找到使用gdb(Watch a memory range in gdb?)访问内存地址的说明,但是当我使用qemu时,我无法弄清楚客户机上的内存地址是如何实现的。

1 个答案:

答案 0 :(得分:2)

通过将-s提供给qemu comman行,您可以通过端口1234上的gdb服务器启动qemu。来自qemu手册页:

   -s  Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port
       1234.

除此之外,您还可以使用选项-S,这将阻止Qemu继续进行,直到您将gdb连接到它并发出continue命令。

-S  Do not start CPU at startup (you must type 'c' in the monitor).

从gdb,您可以通过启动gdb(适合您的guest虚拟机体系结构的gdb版本)连接到qemu上运行的gdb服务器。然后通过命令连接到gdb服务器(如果qemu在同一台机器上运行):

(gdb) target remote :1234

参考文献:

  1. http://wiki.qemu.org/Documentation/Debugging
  2. How to debug the Linux kernel with GDB and QEMU?