如何在qemu gdbserver中的特定用户空间进程上设置断点?

如何在qemu gdbserver中的特定用户空间进程上设置断点?,gdb,qemu,gdbserver,Gdb,Qemu,Gdbserver,我知道如何使用-s开关设置qemu gdbserver的内核调试。在Linux中,内核内存是不可交换的。因此,系统中所有进程的内核虚拟地址保持不变。在内核地址上设置断点不是问题。但是,系统上运行的多个进程的地址范围可能重叠,但它们都位于自己的地址空间上。是否有任何方法可以在已经运行的特定进程上设置断点,并且我知道该进程的PID?b将要创建的特定进程,并且我知道二进制/应用程序的名称?QEMU的gdbstub本质上是一个系统级调试,类似于从JTAG调试器获得的调试。任何对来宾操作系统特定概念(如用

我知道如何使用-s开关设置qemu gdbserver的内核调试。在Linux中,内核内存是不可交换的。因此,系统中所有进程的内核虚拟地址保持不变。在内核地址上设置断点不是问题。但是,系统上运行的多个进程的地址范围可能重叠,但它们都位于自己的地址空间上。是否有任何方法可以在已经运行的特定进程上设置断点,并且我知道该进程的PID?b将要创建的特定进程,并且我知道二进制/应用程序的名称?

QEMU的gdbstub本质上是一个系统级调试,类似于从JTAG调试器获得的调试。任何对来宾操作系统特定概念(如用户进程)知识的支持都需要在调试器中,调试器通过充分了解来宾操作系统的内部结构来查询操作系统进程表、设置操作系统切换任务时的断点等来工作

您可以在这里查看内核的gdb帮助程序脚本是否有任何有用的内容,尽管我不确定它们是否像用户进程中的断点那样复杂: