From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: wilson Newsgroups: comp.lang.ada Subject: Re: Gnat 2013 is out! Date: Tue, 27 Aug 2013 16:05:20 -0400 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: N8opM34qLb9ig1/PVX5RpA.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.15 (Win32) X-Antivirus-Status: Clean X-Notice: Filtered by postfilter v. 0.8.2 X-Antivirus: avast! (VPS 130827-0, 08/27/2013), Outbound message Xref: news.eternal-september.org comp.lang.ada:16986 Date: 2013-08-27T16:05:20-04:00 List-Id: On Tue, 27 Aug 2013 10:08:34 -0400, Yannick Duchêne (Hibou57) wrote: > Le Fri, 31 May 2013 18:12:29 +0200, 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). > > Thank you for saying something I have felt for years. I always felt odd man out for this approach and it is good to have someone else say the same thing. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/