The breakpoint is set either on a given device, or on all devices with the -all flag.
Devices providing multiple banks of registers usually expose them as io_memory port interfaces using the bank names. Some devices use the non-port io_memory interface with a function number instead.
If port is given, argument restricts the monitoring in different ways. If it is a string, only accesses to the io_memory port interface by that name are considered. If an integer, only accesses to the non-port io_memory interface using that function number are considered.
If offset and length are given, the breakpoint is restricted to that address interval within the bank. The default interval length is 1 if offset is given.
By default, both reads and writes trigger the breakpoint. With -r only reads are considered, and with -w only writes are considered.
If several breakpoints are set on the same address, Simics will only break once.
List all breakpoints and their ID numbers with the -list flag.