Skip to content

Commit

Permalink
Update 1wf_01_debugging.md (#2897)
Browse files Browse the repository at this point in the history
* Update 1wf_01_debugging.md

In the debugging page, some examples regarding print debugging were added, and a link to the stdlib documentation

* Update data/tutorials/guides/1wf_01_debugging.md

Co-authored-by: Cuihtlauac Alvarado <cuihtlauac@users.noreply.github.com>

* Update data/tutorials/guides/1wf_01_debugging.md

Co-authored-by: Cuihtlauac Alvarado <cuihtlauac@users.noreply.github.com>

* Update data/tutorials/guides/1wf_01_debugging.md

Co-authored-by: Cuihtlauac Alvarado <cuihtlauac@users.noreply.github.com>

* Update data/tutorials/guides/1wf_01_debugging.md

Co-authored-by: Cuihtlauac Alvarado <cuihtlauac@users.noreply.github.com>

* Apply suggestions from code review

---------

Co-authored-by: Cuihtlauac Alvarado <cuihtlauac@users.noreply.github.com>
  • Loading branch information
patrick-nicodemus and cuihtlauac authored Jan 28, 2025
1 parent e405e0c commit aa2016e
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions data/tutorials/guides/1wf_01_debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,27 @@ purpose formats are more suited to get the relevant information, than what can
be output automatically by the generic pretty-printer used by the trace
mechanism.

Compiler builtins help display useful debugging messages. They indicate a location in the program's source.
For example,
```ocaml
match Message.unpack response with
| Some y -> y
| None -> (Printf.eprintf "Invalid message at %s" __LOC__; raise Invalid_argument)
```
At compile time, the `__LOC__` builtin is substituted with its location in the program, described as a string `"File %S, line %d, characters %d-%d"`. File name, line number, start character and end character are also available through the `__POS__` builtin:
```ocaml
match Message.unpack response with
| Some y -> y
| None ->
let fname, lnum, _cstart, _cend = __POS__ in
Printf.printf "At line %d in file %s, an incorrect response was passed to Message.unpack"
lnum fname;
flush stdout; raise Invalid_argument
```

Compiler builtins are described in the
[standard library](https://ocaml.org/manual/5.2/api/Stdlib.html#1_Debugging) documentation.

## The OCaml Debugger

We now give a quick tutorial for the OCaml debugger (`ocamldebug`). Before
Expand Down

0 comments on commit aa2016e

Please sign in to comment.