内核 - 从Linux系统调试Windows客户机系统 - 安装程序无法正常工作

时间:2015-10-06 07:44:26

标签: linux windows debugging vmware windbg

我正在尝试在我的 Guest - WindowsXP OS 上内核调试应用程序

我的主机是安装了VMware Workstation 12的 Ubuntu 14.04 x64

Debugger Guest OS 是安装了WinDBG的 Windows 7

我从vmware读过这篇文章: https://www.vmware.com/support/ws55/doc/ws_devices_serial_advanced_example_debugging.html

https://www.vmware.com/support/ws55/doc/ws_devices_serial_2vms.html

我根据文章的理解配置了我的机器,但它不会工作。有一点我真的不明白,这可能是我的问题,NamedPipe应该配置为什么? 我应该使用\\.\pipe\[NAME]语法还是/tmp/[NAME]语法?

显然,在Windows 7 - Debugger机器内,它无法识别/tmp/[Name]机器。那是哪一个呢?

以下是我的配置:

WindowsXP(调试客户操作系统)

  1. 使用套接字(命名管道)
  2. \\。\管\ DEBUGPORT
  3. 发件人:服务器收件人:虚拟机
  4. 投票时产生CPU
  5. BOOTCFG

    Boot Loader Settings
    --------------------
    timeout: 30
    default: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    
    Boot Entries
    ------------
    Boot entry ID:   1
    Friendly Name:   "Microsoft Windows XP Professional"
    Path:            multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    OS Load Options: /noexecute=optin /fastdetect /debug /debugport=COM1: /baudrate=115200
    

    Windows7(使用WinDBG的调试程序)

    1. 使用套接字(命名管道)
    2. \\。\管\ DEBUGPORT
    3. 发件人:客户端收件人:虚拟机
    4. 投票时产生CPU
    5. 现在在我的 Windows7 上打开WinDBG,点击CTRL + K获取KernelDebugging选项,转到“COM”标签并配置如下:

      1. 波特率:115200
      2. 端口:\\。\ pipe \ DebugPort
      3. 管道[已检查]
      4. 重新连接[已选中]
      5. 现在重置Guest XP操作系统没有任何结果..我的WinDBG客户端上没有任何东西 我错过了什么?我的端口命名约定是否错误,因为我使用的是linux主机?

2 个答案:

答案 0 :(得分:2)

我可以在这里看到一些问题

  1. 使用linux格式的管道/套接字 - / tmp /,例如/ tmp / dbg,如果你的主机操作系统是linux
  2. 在windbg(调试器系统)中,只需提及端口名称,即COM1,而不是完整的管道名称(在主机操作系统本身上调试时使用,而不是跨VM)
  3. 在windbg(调试器系统)中,取消选中管道
  4. 此外,调试器(Windows 7,此处)
  5. 不需要“轮询产生CPU”选项

    我能够在Ubuntu 14.04和Ubuntu 14.04上安装Windows 7虚拟机(一个调试器和另一个调试对象)上的windbg。工作站11.1.3

答案 1 :(得分:0)

您已经在一个物理主机内的两个单独的虚拟机中安装了两个Windows操作系统,这些主机运行某种类型的Linux 如果是这种情况,你更喜欢使用命名管道

1) edit the boot.ini in xp (no bcdsettings available in xp guest) 
2) add a serial port on both the virtual machines 
3) use named pipe \\.\pipe\com_1  on both virtual machines
4) assign one end as server and other end as virtual machine in first vm
5) assign one end as client and other end as virtual machine in second vm
6) restart

此链接有一些奇特的废话,但你可以参考图像
http://www.woodmann.com/forum/entry.php?234-connect-two-virtual-machines-on-one-physical-host-and-use-wdeb386-to-debug-win98-app