Anonymous user
Bochs: Difference between revisions
m
no edit summary
[unchecked revision] | [unchecked revision] |
mNo edit summary |
|||
Line 1:
{{Emulators}}
'''Bochs''' is a steadily improving
It is strongly suggested to get two installations of Bochs - in addition to the out-of-the-box version (which might well be one of the binary downloads), you should also compile a second instance with the internal debugger enabled - so when something strange occurs that your 'normal' debugging tools can't trace, you can cross-check it with the debug version. You may also wish to enable (and use) the debug
==Frequent error messages==
===Running in Bogus Memory===
You sent your code pointer (
=== 3rd exception with no resolution===
Line 30:
===I/O Operand Size===
Bochs performs some
=== fetch_raw_descriptor: LDTR.valid=0 ===
Many of you have said "but ... I do not have an LDT and I read it wasn't mandatory!?". You're right. And so is
If you're still stuck, download the Bochs
==Differences between Bochs and real hardware==
;Bochs enables
:Your PC doesn't necessarily do so. Sometimes there's a BIOS option, sometimes there isn't. Check your code that enables
;Bochs wipes out its memory
Line 45:
;Bochs does not properly emulate CPU cache/TLB
:Although Bochs does have these constructs, they do not work the same as a regular CPU cache
;Bochs floppy has no errors
:In a
;Bochs is flexible about returning to real mode
:
;Bochs' timer is not
:(unless you configure it closer to real time). Waiting for 2 second on bochs will let any virtual device that needs 2 seconds to be ready be ready, but that could be just 0.02 seconds for you ... or that could be 200 seconds.
Line 101:
===Magic Breakpoint===
When you're using bochs with the internal debugger, then you can trigger the debugger via a system called magic breakpoints. To trigger a breakpoint, you can insert <tt>
You should put the following line in your bochs configuration to have it listen to magic breakpoints:
Line 148:
A few notes:
* If you are on Windows, that last line should probably read "--with-win32".
* Bochs has GDB
* The GDB
* If you do not enable PCI, then the Intel Multiprocessing tables will not appear in memory.
* I was unable to successfully load the GUI debugger without specifying <tt>--disable-plugins</tt>. Otherwise, I get dynamic loading symbol errors.
|