在VmWare VM中为Linux来宾操作系统实现内核调试模块

use*_*689 7 linux virtualization vmware kernel

对不起,相当长的帖子.

我需要一些关于我将要进行的项目的意见.

我正在尝试创建一个应用程序,它从位于VmWare虚拟机内的来宾Linux操作系统收集内核调试信息,并有效地将它们发送到主机操作系统.

到目前为止,我已经找到了一个类似的项目,但是为Windows编写[1].该项目的作者编写了一个加载到内存中的DLL,并替换了KdSendPacket和KdReceivePacket函数的实现,以使用VmWare GuestRpc [2]机制,而不是慢速串行端口.然后通过命名管道将数据发送到主机(Kd或WinDbg)上的调试应用程序.

作者声称,通过避免串口传输,速度提高了45%.

我试图实现类似的东西,但对于Linux,并尝试使调试过程比使用串行端口快一点.

我的具体问题是:

  1. 是否存在类似的应用程序?我找不到任何东西.
  2. 例如,将其功能与netconsole [3]进行比较,这样的应用程序是否值得?
  3. 你建议采用什么方法拦截printk消息?
  4. 在Linux上是否有相当于KdSendPacket/KdReceivePacket?

[1].http://virtualkd.sysprogs.org/dox/operation.html

[2].http://articles.sysprogs.org/kdvmware/guestrpc.shtml

[3].http://www.kernel.org/doc/Documentation/networking/netconsole.txt

jør*_*sen 0

使用串行端口确实不是最理想的......甚至(虚拟)网络也比这更好,但是回到主机-客户 IPC 通道,我想到了 VMware 的 VMCI。