debugging
本頁內容尚未翻譯。
cfamily.Frame.inside
Section titled “cfamily.Frame.inside”def Frame.inside {L : Constructs} (k : List (Frame L)) : BoolWhether the frames are inside a statement already stopped at (its parts) or a loop condition’s preparation, in the same call.
cfamily.Configuration.nextNode
Section titled “cfamily.Configuration.nextNode”def Configuration.nextNode {L : Constructs} (stops : NodeId -> Bool) (x : Configuration L) : Option NodeIdThe node a configuration stops at: its next statement’s, if it is one to stop at (stops: a node the program
wrote, not one of the code a dialect generated or a library’s).
cfamily.Frame.callDepth
Section titled “cfamily.Frame.callDepth”def Frame.callDepth {L : Constructs} (k : List (Frame L)) : NatHow many calls deep the frames are.
cfamily.Configuration.depth
Section titled “cfamily.Configuration.depth”def Configuration.depth {L : Constructs} (x : Configuration L) : NatHow many calls deep a configuration is.
cfamily.Configuration.scanReachesEnd
Section titled “cfamily.Configuration.scanReachesEnd”def Configuration.scanReachesEnd {L : Constructs} (d : RunDialect L) (s : State L) (format : String) (targets : List (TypedExpr L)) : BoolWhether a scanf would read to the end of the input given so far (more input could change what it reads).
cfamily.Configuration.scanCallReachesEnd
Section titled “cfamily.Configuration.scanCallReachesEnd”def Configuration.scanCallReachesEnd {L : Constructs} (d : RunDialect L) (s : State L) (args : List (TypedExpr L)) : BoolWhether a call of scanf in the state s (its format and targets the arguments args, evaluated by the dialect
d) would read to the end of the input given so far.
cfamily.Debug.hasNewline
Section titled “cfamily.Debug.hasNewline”def Debug.hasNewline (cs : List Char) : BoolWhether the codes have a newline.
cfamily.Configuration.needsInput
Section titled “cfamily.Configuration.needsInput”def Configuration.needsInput {L : Constructs} (d : RunDialect L) (x : Configuration L) : BoolWhether the next statement reads input that may not all be there yet: scanf reaching the end, getchar with no input, fgets with no newline, a dialect’s statement that says so.
cfamily.Configuration.state
Section titled “cfamily.Configuration.state”def Configuration.state {L : Constructs} (x : Configuration L) : Option (State L)The state of a configuration, if it has one.
cfamily.Configuration.noteCount
Section titled “cfamily.Configuration.noteCount”def Configuration.noteCount {L : Constructs} (x : Configuration L) : NatHow many divergences a configuration has noted (an assumed choice is not one).
cfamily.ReasonDescription.kindOf
Section titled “cfamily.ReasonDescription.kindOf”def ReasonDescription.kindOf (r : ReasonDescription) : ReasonKindA reason’s kind.
cfamily.Dialect.halt
Section titled “cfamily.Dialect.halt”def Dialect.halt {L : Constructs} (d : Dialect L) (x : Configuration L) (y : Configuration L) : Option (Halt (Stopped L) (State L) (Stopped L) (Outcome L))How a finished run ends for the debugger: a stop’s kind by its reason (the state before the move that stopped).
cfamily.Dialect.machine
Section titled “cfamily.Dialect.machine”def Dialect.machine {L : Constructs} (d : Dialect L) (c : CheckedProgram L) (stops : NodeId -> Bool) : Machine (Configuration L) Unit (Stopped L) (State L) (Stopped L) (Outcome L)The C family’s machine for the debugger driver, for a checked program, stopping at the nodes stops says.
cfamily.Dialect.reasonJson
Section titled “cfamily.Dialect.reasonJson”def Dialect.reasonJson {L : Constructs} (d : Dialect L) (w : Stopped L) : JsonA stop’s reason as the host reads it: {kind, pre, clause, values, op}.
cfamily.Dialect.noteJson
Section titled “cfamily.Dialect.noteJson”def Dialect.noteJson {L : Constructs} (d : Dialect L) (w : Stopped L) : JsonA divergence as the host reads it: {kind, at, clause, reason}.
cfamily.Dialect.notesJson
Section titled “cfamily.Dialect.notesJson”def Dialect.notesJson {L : Constructs} (d : Dialect L) (s : Option (State L)) : StringThe divergences noted so far at a stop, as JSON.