From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Gnat 2013 is out!
Date: Tue, 27 Aug 2013 16:08:34 +0200
Date: 2013-08-27T16:08:34+02:00 [thread overview]
Message-ID: <op.w2hawkhuule2fv@cardamome> (raw)
In-Reply-To: bc25b1f3-b0fd-4329-8c93-134ec5ad1815@googlegroups.com
Le Fri, 31 May 2013 18:12:29 +0200, <dptrash@arcor.de> a écrit:
> May I ask, how you debug Ada programs? Do you use GNATbench 2.7 for
> that? I need a good debugging tool :-)
I personally did not used a debugger since Borland Turbo Pascal. I first
missed it (at that time GDB for C programs had issues on Windows 3.1), but
quickly figured a debugger only show you one particular path in your
logic, and above all, consume a lot of your time to just follow this path,
a lot of time which is not used to understand the properties of the whole.
So instead of trying to fix something in a particular path — ignoring the
whole and so probably introducing a new bug elsewhere in the while — I
would say it's surely better to understand the whole and so not rely on a
debugger. A debugger never gives you such a picture, only analysis and
understand gives this to you.
When something really drives me crazy, I just add a “sentinel” which
prints out some information (just requires an “with Ada.Text_IO” and a
line added somewhere to print an “Element'Image”) I fill to not track
correctly, to help me a bit. Then, back to global understanding as soon as
possible.
A program is not a single path and a particular property of a particular
state as exposed by a debugger, it's multitude of possible paths and
general properties common to a multitude of possible states (that's what
you have to track, not a single path). In short, a debugger gives you a
wrong picture, except if you are at the very beginning and try to figure
out what's a programming language and how a state machine (like a computer
is) works.
Another issue, is that a program is not always running in a debugger, and
so what when something went wrong while it was not running in a debugger
and you don't have a complete and exact snapshot of the program's state
when it get wrong? Here, a logger surely help more than a debugger, as it
may be active all the time (most platform provides an API to help
automatically manage logs and avoid these logs to fill all of your storage
space).
--
“Syntactic sugar causes cancer of the semi-colons.” [1]
“Structured Programming supports the law of the excluded muddle.” [1]
[1]: Epigrams on Programming — Alan J. — P. Yale University
next prev parent reply other threads:[~2013-08-27 14:08 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-29 13:36 Gnat 2013 is out! J-P. Rosen
2013-05-29 15:03 ` Simon Wright
2013-05-29 16:13 ` Simon Wright
2013-05-29 22:39 ` Randy Brukardt
2013-05-30 2:01 ` Adam Beneschan
2013-05-30 8:01 ` Bill Findlay
2013-05-30 23:09 ` Dennis Lee Bieber
2013-05-31 5:02 ` J-P. Rosen
2013-05-31 18:35 ` Bill Findlay
2013-05-30 10:39 ` Simon Wright
2013-05-30 16:21 ` Adam Beneschan
2013-05-30 19:53 ` Randy Brukardt
2013-05-31 7:41 ` Dmitry A. Kazakov
2013-05-31 11:30 ` Stefan.Lucks
2013-05-31 12:03 ` Niklas Holsti
2013-05-31 22:07 ` Randy Brukardt
2013-06-01 11:51 ` Georg Bauhaus
2013-06-03 14:52 ` Adam Beneschan
2013-06-04 17:42 ` Wesley Pan
2013-06-04 18:34 ` Adam Beneschan
2013-06-04 19:00 ` Wesley Pan
2013-06-05 15:40 ` Eryndlia Mavourneen
2013-06-11 2:39 ` Randy Brukardt
2013-06-11 6:31 ` Georg Bauhaus
2013-06-19 21:57 ` Randy Brukardt
2013-05-30 0:31 ` Dennis Lee Bieber
2013-05-31 16:12 ` dptrash
2013-06-01 5:10 ` Stephen Leake
2013-06-01 6:00 ` Per Sandberg
2013-06-01 6:46 ` J-P. Rosen
2013-06-01 15:22 ` Bill Findlay
2013-08-27 14:08 ` Yannick Duchêne (Hibou57) [this message]
2013-08-27 20:05 ` wilson
2013-08-27 22:59 ` Dennis Lee Bieber
2013-08-28 7:35 ` Dmitry A. Kazakov
2013-08-28 23:39 ` Dennis Lee Bieber
2013-06-07 2:41 ` gautier_niouzes
2013-06-07 15:52 ` mjsilva
2013-06-07 20:15 ` Dmitry A. Kazakov
2013-06-09 18:51 ` MatthiasR
2013-06-08 6:22 ` Simon Wright
2013-06-08 23:23 ` mjsilva
2013-06-10 11:07 ` Rego, P.
2013-06-13 13:30 ` Rego, P.
2013-06-17 6:35 ` Jacob Sparre Andersen
2013-06-22 8:17 ` MatthiasR
2014-03-18 0:04 ` Rego, P.
2013-06-11 7:52 ` Maciej Sobczak
2013-06-11 9:35 ` J-P. Rosen
2013-06-11 12:09 ` John Doe
2013-06-12 7:58 ` Maciej Sobczak
2013-06-12 11:01 ` G.B.
2013-06-12 20:01 ` Robert A Duff
2013-06-12 20:36 ` Georg Bauhaus
2013-06-13 7:38 ` Maciej Sobczak
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox