caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Michael Grünewald" <michipili@gmail.com>
To: Anton Bachin <antonbachin@yahoo.com>
Cc: John Whitington <john@coherentgraphics.co.uk>,
	"caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] Do you use a debugger with OCaml? If not, why not?
Date: Wed, 25 Nov 2015 17:52:22 +0100	[thread overview]
Message-ID: <F6461BB5-122D-4CC8-B761-3E620DBB82A4@gmail.com> (raw)
In-Reply-To: <67E3C8E6-47E2-4010-9399-F66A18EBF493@yahoo.com>


> On 25 Nov 2015, at 17:16, Anton Bachin <antonbachin@yahoo.com> wrote:
> 
> I always use prints and never debuggers when I have access to the
> source, in any language. I use debuggers when reverse-engineering
> binaries, however. As for why – setting up breakpoints, trying to
> examine values usually takes more time for me than adding some
> prints and reading and understanding the resulting trace. Perhaps
> it only seems that way, but that has been my habit for a very long
> time.

While OCaml has an incredibly powerful debugger, I rarely use it. In
most situation, I can analyse code to make an hypothesis that I can
turn into an automatic test case.  Time spent writing tests is in
my opinion much better invested than time spent debugging, because
the investment is reflected by a code artefact that adds value to
the project, in the form of confidence about results.

Sometimes, problems observed do not have any obvious plausible cause,
so that stepping through the code is one of the best options.

Instead of print-peppering, I prefer to use structured failures
(like the success monad https://github.com/michipili/lemonade)
giving context for the failure, or improved logging capacities.

This is not really related to debugging, but let me add that I tend
to use the toplevel loop, either for experimenting or to interactively
solve complex (to me) typing problems that I cannot do right away.

Best,
Michael


  reply	other threads:[~2015-11-25 16:52 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-25 12:49 John Whitington
2015-11-25 13:12 ` Francois Berenger
2015-11-25 13:23 ` Ivan Gotovchits
2015-11-25 15:27   ` Gerd Stolpmann
2015-11-25 16:04     ` Chan Ngo
2015-11-25 13:26 ` Matthieu Dubuget
2015-12-01 12:06   ` Matthieu Dubuget
2015-11-25 14:02 ` Markus Weißmann
2015-11-25 14:05 ` Nils Becker
2015-11-25 15:55 ` Daniel Bünzli
2015-11-26  9:14   ` Leonardo Laguna Ruiz
2015-11-26 10:59     ` Tom Ridge
2015-11-30 17:56       ` Xavier Van de Woestyne
2015-11-25 16:06 ` Maverick Woo
2015-11-25 16:16 ` Anton Bachin
2015-11-25 16:52   ` Michael Grünewald [this message]
2015-11-25 18:23     ` Török Edwin
2015-11-25 20:23 ` David MENTRÉ
2015-11-26 10:11 ` Malcolm Matalka
2015-11-26 10:57 ` Romain Bardou
2015-12-11 18:58 ` Richard W.M. Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F6461BB5-122D-4CC8-B761-3E620DBB82A4@gmail.com \
    --to=michipili@gmail.com \
    --cc=antonbachin@yahoo.com \
    --cc=caml-list@inria.fr \
    --cc=john@coherentgraphics.co.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).