Intel® Simics® Simulator for Intel® FPGAs: User Guide

ID 784383
Date 4/01/2024
Public
Document Table of Contents

6.3. Breakpoints

Intel® Simics® simulator can set breakpoints on code and data. Unlike most debuggers, Intel® Simics® simulator breakpoints are not limited by what the hardware can support; for example, there is no restriction on the number of read/write breakpoints (also known as watchpoints).

For example, you can set breakpoints on the following objects in the Intel® Simics® simulator:

  • memory accesses: any range and combination of read/write/execute
  • CPU registers
  • time (number of cycles or instructions executed)
  • instruction types, such as control register accesses
  • device accesses
  • output in the serial console
  • log output

The Intel® Simics® simulator is fully deterministic, and most of the breakpoints are non-intrusive. This makes it possible to narrow down the location of difficult bugs by rerunning the same run as many times as you need.

Intel® Simics® provides the same results in different simulations if the inputs are the same. Human interaction and connections with the real world might cause different results.

Intel® Simics® simulator has a breakpoint manager that stores information about all types of breakpoints. It has commands for listing breakpoints, enabling, deleting and other common operations. Breakpoint creation is specific to the several types which are described in the following subsections. The breakpoint manager is the object called bp.

In general, breakpoint creation commands return an ID, which can be used to later delete the breakpoint, or obtain information about it. The most important generic commands are

  • bp.list, which lists all breakpoints.
  • bp.delete, which removes a particular breakpoint.
  • bp.show, which shows more information about a particular breakpoint.

The following sections describe the diverse types of breakpoints that are supported by Intel® Simics® simulator.