3

我可以在网上找到使用 gdb 访问内存地址的指令(Watch a memory range in gdb?),但是当我使用 qemu 时,我不知道如何处理客户机上的内存地址。

4

1 回答 1

2

-s通过提供给 qemu 命令行,您可以使用 gdb 服务器在端口 1234 上启动 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(适合您来宾架构的 gdb 版本)连接到在 qemu 上运行的 gdb 服务器。然后通过命令连接到gdb服务器(如果qemu在同一台机器上运行):

(gdb) target remote :1234

参考:

  1. http://wiki.qemu.org/Documentation/Debugging
  2. 如何使用 GDB 和 QEMU 调试 Linux 内核?
于 2016-10-03T02:03:33.960 回答