86eff7597d
This PR is for "I/O Interface to Bochs Debugger" from ring3 (port range: **0x8A00 - 0x8A01**) PR #64 was for E9 HACK (port **0xE9**) By enabling the iodebug's 'all_rings' option, you can utilize the port I/O Interface to Bochs Debugger from ring3. This PR allows the code running inside Bochs (ring3) to monitor memory ranges, trace individual instructions, and observe register values during execution. https://bochs.sourceforge.io/doc/docbook/development/debugger-advanced.html IMO very useful for: - user-mode sandbox (ex Cuckoo) - malware analysis - API/SYSCALL hook/monitor from ring3 - automation + instrumentation from user mode code ... A complement for PR #64 **This PR is 100% backward compatibility** ![IODEBUG ALL RINGS](https://github.com/bochs-emu/Bochs/assets/9882181/6308ad0f-c189-43f3-a92b-dccde3542ad6) btw, @stlintel I'm not certain about: - if misc is the ideal location for this.. should I create a new iodebug-option for this? - should I remove the #if in 'new bx_param_bool_c'? - the new .bochsrc entry makes sense for you?
315 lines
3.6 KiB
Plaintext
315 lines
3.6 KiB
Plaintext
$Id$
|
|
|
|
Starting from Bochs 2.3 the parameters are organized in a tree structure
|
|
instead of a huge flat list. The parameter tree was required for implementing
|
|
the save/restore feature, and it gives access to the device state from within
|
|
the debugger.
|
|
-Volker
|
|
|
|
Current organization of parameters in the tree
|
|
|
|
general
|
|
config_interface
|
|
start_mode
|
|
benchmark
|
|
dumpstats
|
|
restore
|
|
restore_path
|
|
debug_running
|
|
|
|
cpu
|
|
n_processors
|
|
n_cores
|
|
n_threads
|
|
model
|
|
ips
|
|
quantum
|
|
reset_on_triple_fault
|
|
msrs
|
|
cpuid_limit_winnt
|
|
mwait_is_nop
|
|
|
|
cpuid
|
|
level
|
|
family
|
|
model
|
|
stepping
|
|
vendor_string
|
|
brand_string
|
|
mmx
|
|
sep
|
|
simd
|
|
sse4a
|
|
misaligned_sse
|
|
avx_f16c
|
|
avx_fma
|
|
aes
|
|
sha
|
|
movbe
|
|
adx
|
|
xsave
|
|
xsaveopt
|
|
svm
|
|
vmx
|
|
bmi
|
|
xop
|
|
fma4
|
|
tbm
|
|
apic
|
|
x86_64
|
|
1g_pages
|
|
pcid
|
|
fsgsbase
|
|
smep
|
|
smap
|
|
mwait
|
|
|
|
memory
|
|
standard
|
|
ram
|
|
size
|
|
rom
|
|
path
|
|
address
|
|
options
|
|
vgarom
|
|
path
|
|
optrom
|
|
0
|
|
path
|
|
addr
|
|
1
|
|
path
|
|
addr
|
|
2
|
|
path
|
|
addr
|
|
3
|
|
path
|
|
addr
|
|
optram
|
|
0
|
|
path
|
|
addr
|
|
1
|
|
path
|
|
addr
|
|
2
|
|
path
|
|
addr
|
|
3
|
|
path
|
|
addr
|
|
|
|
clock_cmos
|
|
clock_sync
|
|
time0
|
|
cmosimage
|
|
enabled
|
|
path
|
|
rtc_init
|
|
|
|
pci
|
|
enabled
|
|
chipset
|
|
slot
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
advopts
|
|
pcidev
|
|
vendor
|
|
device
|
|
|
|
display
|
|
display_library
|
|
displaylib_options
|
|
private_colormap
|
|
fullscreen
|
|
screenmode
|
|
vga_extension
|
|
vga_update_interval
|
|
voodoo
|
|
enabled
|
|
model
|
|
|
|
keyboard_mouse
|
|
keyboard
|
|
type
|
|
serial_delay
|
|
paste_delay
|
|
use_mapping
|
|
keymap
|
|
user_shortcut
|
|
mouse
|
|
type
|
|
enabled
|
|
|
|
boot_params
|
|
boot_drive1
|
|
boot_drive2
|
|
boot_drive3
|
|
floppy_sig_check
|
|
|
|
floppy
|
|
0
|
|
devtype
|
|
path
|
|
type
|
|
readonly
|
|
status
|
|
1
|
|
devtype
|
|
path
|
|
type
|
|
readonly
|
|
status
|
|
|
|
ata
|
|
0
|
|
resources
|
|
enabled
|
|
ioaddr1
|
|
ioaddr2
|
|
irq
|
|
master
|
|
type
|
|
path
|
|
mode
|
|
journal
|
|
cylinders
|
|
heads
|
|
spt
|
|
sect_size
|
|
status
|
|
model
|
|
biosdetect
|
|
translation
|
|
slave
|
|
(same options as master)
|
|
1
|
|
(same options as ata.0)
|
|
2
|
|
(same options as ata.0)
|
|
3
|
|
(same options as ata.0)
|
|
|
|
ports
|
|
serial
|
|
1
|
|
enabled
|
|
mode
|
|
dev
|
|
2
|
|
(same options as ports.serial.1)
|
|
3
|
|
(same options as ports.serial.1)
|
|
4
|
|
(same options as ports.serial.1)
|
|
parallel
|
|
1
|
|
enabled
|
|
outfile
|
|
2
|
|
(same options as ports.parallel.1)
|
|
usb
|
|
uhci
|
|
enabled
|
|
port1
|
|
device
|
|
options
|
|
port2
|
|
device
|
|
options
|
|
ohci
|
|
(same options as ports.usb.uhci)
|
|
ehci
|
|
(same options as ports.usb.uhci)
|
|
xhci
|
|
(same options as ports.usb.uhci)
|
|
|
|
network
|
|
ne2k
|
|
enabled
|
|
ioaddr
|
|
irq
|
|
macaddr
|
|
ethmod
|
|
ethdev
|
|
script
|
|
bootrom
|
|
pnic
|
|
enabled
|
|
macaddr
|
|
ethmod
|
|
ethdev
|
|
script
|
|
bootrom
|
|
|
|
e1000
|
|
enabled
|
|
macaddr
|
|
ethmod
|
|
ethdev
|
|
script
|
|
bootrom
|
|
|
|
sound
|
|
lowlevel
|
|
waveoutdrv
|
|
waveout
|
|
waveindrv
|
|
wavein
|
|
midioutdrv
|
|
midiout
|
|
speaker
|
|
enabled
|
|
mode
|
|
sb16
|
|
enabled
|
|
midimode
|
|
midifile
|
|
wavemode
|
|
wavefile
|
|
log
|
|
loglevel
|
|
dmatimer
|
|
es1370
|
|
enabled
|
|
midimode
|
|
midifile
|
|
wavemode
|
|
wavefile
|
|
|
|
misc
|
|
port_e9_hack
|
|
port_e9_hack_all_rings
|
|
iodebug_all_rings
|
|
gdbstub
|
|
port
|
|
text_base
|
|
data_base
|
|
bss_base
|
|
|
|
log
|
|
filename
|
|
prefix
|
|
debugger_filename
|
|
|
|
menu
|
|
disk
|
|
disk_win32
|
|
memory
|
|
runtime
|
|
cdrom
|
|
usb
|
|
misc
|
|
|
|
bochs
|
|
(subtree containing Bochs state)
|
|
|
|
user
|
|
(subtree for user-defined options)
|