package why3find
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=435da830a513fd91ec5411c91126b763
sha512=fd8b04eb16d569c0dc9e5595a40b174d7858121b080c81d459b2f28fb3af1ebc32ef408859d5c1c5f45c61790625c027c2ecfc3d45e597943543de7212bab8d6
doc/why3find.utils/Why3findUtils/Dap/index.html
Module Why3findUtils.DapSource
Debug Adapater Protocol
Base Protocol
Establish the adapter or exit
Testing if the adapter is still running. Returns true when there is no more in/out pending messages.
Process (at most) one pending LSP message of one scheduled callback, if any. Always process pending non-blocking I/O. Then, provided no request nor callback is being processed: flush one pending callback, if any, or process one LSP message, if any. Returns true is some request or callback has been processed.
Schedule a callback to be executed during subsequent calls to `process` or `yield`.
Register adapter capbility. Default value `true`.
Output & Logging
val output :
adapter ->
?category:category ->
('a, Format.formatter, unit, unit) format4 ->
'aInitialization Sequence
By default, on_init emits an initialized event. If overriden, don't forget to emit an initialized event at some point.
Launch Sequence
End Sequence
Disconnect request arguments
val on_disconnect :
?terminate:bool ->
?suspend:bool ->
(adapter -> disconnect -> unit) ->
unitProgress
Locations
Breakpoints
val verified :
id:int ->
?message:string ->
?file:string ->
?line:int ->
?column:int ->
?end_line:int ->
?end_column:int ->
unit ->
breakpointval breakpoint :
adapter ->
id:int ->
?reason:string ->
?verified:bool ->
?message:string ->
?file:string ->
?line:int ->
?column:int ->
?end_line:int ->
?end_column:int ->
unit ->
unitUpdate a (pending) breakpoint.
val on_breakpoint :
?condition:bool ->
?hit_condition:bool ->
?log_message:bool ->
?clear:(unit -> unit) ->
(source_breakpoint -> breakpoint) ->
unitIf specified, the flags will activate the associated capabilities.
Identified Objects
For custom requests, it is possible to attach attributes to identified objects and to recover them by object identifier.
You first create an attribute map with attribute function. Then, you can create values for this attribue map with value and attach them to variables, frames and/or threads. Values can be obtained back from identifiers with find_by_varId, find_by_frameId and find_by_threadId.
Lifetime of identifiers ends on stopped events.
Variables
Its is recommended to use Darray.delayed for returning large array of variables.
val variable :
name:string ->
?value:string ->
?vtype:string ->
?kind:string ->
?attributes:string list ->
?visiblity:string ->
?index:variable Darray.t ->
?named:variable Darray.t ->
?decl:location ->
?vdecl:location ->
?values:value list ->
unit ->
variableScopes
Its is recommended to use Darray.delayed for returning large array of variables.