HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Moduleghc-9.14.1GHC2021

GHC.HsToCore.Breakpoints

Information attached to Breakpoints generated from Ticks

The breakpoint information stored in ModBreaks is generated during desugaring from the ticks annotating the source expressions.

This information can be queried per-breakpoint using the BreakpointId datatype, which indexes tick-level breakpoint information.

ModBreaks and BreakpointIds are not to be confused with InternalModBreaks and InternalBreakIds. The latter are constructed during bytecode generation and can be found in GHC.ByteCode.Breakpoints.

See Note [ModBreaks vs InternalModBreaks] and Note [Breakpoint identifiers]

  • 3 types
  • 1 value
  • Packageghc-9.14.1
  • Exports4
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceBreakpoints.hs

ModBreaks

2 declarations
valuemkModBreaks
  1. :: Bool

    Whether the interpreter is profiled and thus if we should include store a CCS array

  2. -> Module
  3. -> SizedSeq Tick
  4. -> ModBreaks
#

Initialize memory for breakpoint data that is shared between the bytecode generator and the interpreter.

Since GHCi and the RTS need to interact with breakpoint data and the bytecode generator needs to encode this information for each expression, the data is allocated remotely in GHCi's address space and passed to the codegen as foreign pointers.

datadata ModBreaks
#

All the information about the source-relevant breakpoints for a module

This information is constructed once during desugaring (with mkModBreaks) from breakpoint ticks and fixed/unchanged from there on forward. It could be exported as an abstract datatype because it should never be updated after construction, only queried.

The arrays can be indexed using the int in the corresponding BreakpointId (i.e. the BreakpointId whose Module matches the Module corresponding to these ModBreaks) with the accessors modBreaks_locs, modBreaks_vars, and modBreaks_decls.

Constructors

Re-exports BreakpointId

datadata BreakpointId
#

Breakpoint identifier.

Indexes into the structures in the ModBreaks created during desugaring (after inserting the breakpoint ticks in the expressions). See Note [Breakpoint identifiers]

Constructors

Instances5Eq, Data, Ord, NFData, Outputable
typetype BreakTickIndex = Int
#

Breakpoint tick index newtype BreakTickIndex = BreakTickIndex Int deriving (Eq, Ord, Data, Ix, NFData, Outputable)