NeonFlash
Contributor
Contributor

Vmware Serial Debugging Problem (hal.dll) issue

Hi,

I am using a Win XP SP3 VM running inside VMWare Workstation.

I have configured a serial port in the VM to use for the serial debugging from windbg on the host OS.

The Host OS: Windows 7 SP1

I have attached the image of the serial port configuration, vmware configuration.

The serial port type is: Output to Named Pipe

Name of serial port: \\.\pipe\com_1

Below is the boot.ini configuration:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINXP
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - Debug" /fastdetect /debugport=com1 /baudrate=115200

The error message details when I select the 2nd entry in the boot menu options:

windows could not start because the following file is missing or corrupt:

<windows root>\system32\hal.dll

please re-install a copy of the above file

I have followed different documents available on the net which tell how to configure VM and windbg to use for serial debugging, but it doesn't seem to work for me.

The error message above according to the Microsoft site is due to a incorrect entry in the boot.ini file. I cannot understand where the boot.ini configuration is going wrong.

0 Kudos
5 Replies
Bernd_Nowak
Hot Shot
Hot Shot

Shouldn't it be:

/fastdetect /debug /debugport=com1 /baudrate=57600

The missing /debug switch might be the reason?

Or do you have really 2 windows installs in the VM (C:\WINXP and C:\WINDOWS)?

If the first entry works just try this in the boot.ini:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINXP
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional - Debug" /fastdetect /debug /debugport=com1 /baudrate=115200

NeonFlash
Contributor
Contributor

Thanks for your response.

The second entry in my boot.ini file was pointing to WINDOWS instead of WINXP. Changing that fixed this error.

However, now I am facing another issue.

Once I select the 2nd option from the Boot Screen (debugger enabled) and then click OK in the windbg screen, it stays at:

Opened \\.\pipe\whatever
Waiting to reconnect...

The name of the serial port in VM config is: \\.\pipe\whatever

The name of the port under the COM tab in windbg is: \\.\pipe\whatever

My Network Adapter is in bridged mode.I am able to ping the Guest OS from the Host OS and also the other way, from Guest OS to Host OS.

On a side note, according to this microsoft article:

http://support.microsoft.com/kb/833721

the /debug switch is automatically activated when we use the /baudrate switch.

0 Kudos
Bernd_Nowak
Hot Shot
Hot Shot

You have noticed that your debug line is pointing to a none existent windows installation?

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - Debug" /fastdetect /debugport=com1 /baudrate=115200

It should be

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

multi(0)disk(0)rdisk(0)partition(1)\WINXP="Microsoft Windows XP Professional - Debug" /fastdetect /debugport=com1 /baudrate=115200

I tested with a Windows XP VM and it works fine. Workstation 8.0.1 and no problems.

0 Kudos
NeonFlash
Contributor
Contributor

Yes I have noticed that already as I mentioned in my previous post. I have corrected that entry in boot.ini and now I am not getting any error while booting.

However, in windbg I am not able to connect successfully to the Windows XP VM image to debug the kernel.

Is there some connection issue?

0 Kudos
NeonFlash
Contributor
Contributor

I have fixed the issue. The issue was with the port name I was specifying in the boot.ini file.

Instead of using, /debugport=com1, I should use: /debugport=\\.\pipe\whatever

and now it works.

0 Kudos