Averything that required cpu.h include now has it explicitly and there are a lot of files not dependant by CPU at all which will compile a lot faster now ...
- parameter tree structure updated (TODO: should be moved to development.dbk)
- code cleanup: bx_options stuff and obsolete parameter access methods removed
- TODO: rewrite of shadow parameter stuff (for subtree "save_restore")
I would like all next commits be aware of SMM mode.
It can't be implemented right now (too many questions w/o answers) but it will be done till next major release definitelly.
New debugger problem discovered - most of dbg linear memory acceses not aware on paging and possible page split !
Implemented new dbg method bx_dbg_read_linear (very similar to CPU access_linear) - every debugger method should use it to read any amount of memory based on linear address.
Implemented print_stack command for x86-64 support
Setting the eip register still not available (deliberatelly).
I don't want to enable it util I find some easy interface to do it.
I don't want to allow setting of part of RIP register using 'set eip=<expr>' and leave the upper part unchanged ....
Remove unused test registres from debugger
Fix compilation error in cpu.h
Change trace-on/trace-off commands. Make one 'trace' command with usage of 'trace on/trace off'
Enable disasm by default - in adds some useful information to debug messages in log file
Remove defines for 8bit registers from cpu.h, the x86 arch defines not match defines used by set_reg and get_reg methods.
The Bochs anyway even doesn't compile if cosimulation configured enabled.
But in the same time the cosimulation code only disturbs to the future development of Bochs debugger, for example adding x86-64 functionality ...
For those of you who still may want to see the cosimulation code inside I put it in patch and upload it Bochs CVS patches folder. Read comments for the patch ! ----------------------------------------------------------------------
'set $eax = <value>' is stupid when you could do expr like 'set eax = ebx + 4'
2. cleanup and optimize Bochs debugger parsing, fixed several memory leaks
2. new command 'u|disasm|disassemble mode-switch' - switch between Intel and AT&T disasm syntax
3. new command 'u|disasm|disassemble size=n' should be used instead of old 'set $disassembler_size=n'
4. 'h' is a new alias for 'help' command
- move crc.cc from debugger to bochs folder and make it projct-wide and not local for debugger
- added new 'info sse' command for debugger
- extend 'modebp' command to break on any mode change
- remove unimplemened 'info program' function, it is always printed fixed text
- move debugger help to parser, cleanup and simplify it
2. More corrrect fix for bx_yyinput function in debugger.
It should read all available bytes but no more than max_size bytes
and it is no needed to modify lex_input_size.
Virtual Mode Extensions (VME)
and
Protected Mode Virtual Interrupts (PVI)
instructions STI and CLI have full support of these features, according to Intel docs. Need to check POPF and PUSHF instructions and afterwise VME and PVI extensions could be enabled in CR4
- fixed pcidev targets in iodev/Makefile.in
- updated all Makefile dependencies using a default setup (.conf.linux).
TODO: dependencies should be generated at compile time since they depend on
the config settings
%*s in one statement)
- defined platform dependant symbol FMT_TICK for cpu ticks output to logfile and
debugger console
- fixed indent mode in function bx_dbg_symbolic_output()
bochs.h already not include iodev.h which reduces compilation dependences for almost all cpu and fpu files, now cpu files will not be recompiled if iodev includes was changed