I have a VMWare 5.5 on Windows XP 32-bit.
If possible, how can I debug its booting process from the very start?
i.e.: debugging the BIOS from the host system.
Thanks in advance.
__
JJ
> I have a VMWare 5.5 on Windows XP 32-bit.
> If possible, how can I debug its booting process from the very start?
> i.e.: debugging the BIOS from the host system.
windoze wont allow you to even read data/code from BIOS and it's
starting process.
My way to see what M$ want to do is bootup another OS which can
read the M$-filesystem and then debug BIOS and NTLDR (have a
funny time by seeing all the weirdness and reduntance in there).
But be aware of the Licence you signed when you installed any M$-OS !!!
debugging NTLDR is a reverse engineering action and violate ...
nevertheless I've done it and still can't stop laughing about the
huge amount of redundant/stupid code found in there.
__
wolfgang
If I'd had to rule, I'd first hang these feeble minded teachers.
Um, I mean to debug the BIOS inside the VMWare using VMWare's debugging
interface (if any) to debug the guest hardware from the host system.
Sorry if I didn't mention it clearly enough.
While I do have interest on debugging an OS boot process, I always
wanted to debug the BIOS itself. It's something that I'm curious about
for a (very) long time and being unable to do so. I also wonder how the
heck BIOS developers debug their BIOS during the development or during
bug hunting.
__
JJ
There are multiple approaches:
- thoroughly test and debug the code in RAM (harder to do in ROM) at a
different location or in the RAM that shadows the ROM in order to be
able to modify the code/data easily; many parts can be separately
developed and tested as more or less ordinary applications
- use hardware facilities that include hardware debuggers (e.g.
directly attached and fully controlling the CPU and some other
circuits) and all additional indicators, ports, etc that show or dump
states of various important things and buttons/switches that can
change or generate signals; often times this involves the use of
custom hardware specifically made for the development as consumer PCs
do not carry all that costly (and useless to users) debugging stuff
- use software models of hardware and do most of the development fully
in software
Alex
>> But be aware of the Licence you signed when you installed any M$-OS !!!
>> debugging NTLDR is a reverse engineering action and violate ...
>> nevertheless I've done it and still can't stop laughing about the
>> huge amount of redundant/stupid code found in there.
> Um, I mean to debug the BIOS inside the VMWare using VMWare's debugging
> interface (if any) to debug the guest hardware from the host system. Sorry
> if I didn't mention it clearly enough.
Don't know if VMWare emulates all hardware and BIOS-calls.
What do you have in mind with 'guest hardware' ? :)
Direct I/O and memory access rights granted to a guest-OS may be
a fiction anyway and may be redirected to the host-OS.
> While I do have interest on debugging an OS boot process, I always wanted
> to debug the BIOS itself. It's something that I'm curious about for a
> (very) long time and being unable to do so. I also wonder how the heck
> BIOS developers debug their BIOS during the development or during bug
> hunting.
You'll need certain tools for this:
a (minimal) "boot OS" with unlimited access and "exception handlers"
that invoke the "debugger", which allow "edit" on register-values
and memory contents. "Disassembler" and "hexdump" are mandatory.
File load/store functions for several file-systems with definable
destination/source address are also fine to have.
I once wrote all this stuff for myself and still use the
HEX-editable disassembler for code creation and debugging.
My debugger allow unlimited range for code/data/IO breakpoints.
There is no direct way to single step into INTnn, so you
need to replace an INTnn with:
PUSHF
CALL far [INTnn_vector]
but be aware of possible system hang if you delay timecritical
hardware response by single stepping.
__
wolfgang
If you mean debugging host's BIOS then I don't think that you have
right tools for that.
If you want to debug target's BIOS (which runs on emulation) then I
don't know if you can do it with VmWare, but you can do it with Bochs
(it has own debugger) and QEMU (it has GDBstub, to which you can
"remotely connect" via 127.0.0.1)
Daniel