comp.lang.ada
 help / color / mirror / Atom feed
From: Tero Koskinen <tero.koskinen@iki.fi>
Subject: Re: Practicalities of Ada for app development
Date: Fri, 22 Jun 2012 13:43:59 +0300
Date: 2012-06-22T13:43:59+03:00	[thread overview]
Message-ID: <20120622134359.a548b199003c81c82edfd952@iki.fi> (raw)
In-Reply-To: 92daaca1-46ae-43e1-abae-397b4bf6aa33@googlegroups.com

On Thu, 21 Jun 2012 13:30:18 -0700 (PDT)
Adam Beneschan <adam@irvine.com> wrote:

> On Thursday, June 21, 2012 12:18:52 PM UTC-7, J-P. Rosen wrote:
> > In general, I get /thousands/ of useless messages (and I can't predict
> > how many) before the one I'm interested in, that is, the last one before
> > the crash. I don't care, I just let the screen scroll... How could I do
> > that in a debugger? A breakpoint, and thousands of useless "go"
> > commands? No thanks.
> 
> Actually, that's a typical case where I find a debugger useful.  At the point where you add the trace message, I set a breakpoint, but set it up so that it continues automatically and doesn't display any message.  Then when the crash occurs, I ask the debugger to display information on the breakpoint, and find that it occurred N times.  Then I rerun the program, and set a breakpoint at that same place, telling the debugger to stop the program after it's hit that place N-1 times.  That way, I can see what's going on just before the crash. 

Sometimes when the buggy program is unknown to me, I wrap the debugger
(gdb) inside an Expect script, set breakpoint to the start of the main
procedure, and instruct the script to send "go until next source code
line" to the debugger until the buggy program crashes.

Depending on the size of the program, this might take hours, but I get
automatically strace of every source code line (since gdb prints them
for me) before the crash all the way from the beginning of the program
and I don't even need to turn on separate tracing from the source code.

Also, if I am interested in some variable, I can instruct either gdb
or my Expect script to display it before continuing to the next line.

Btw, you Ada compiler vendors have it easy. Just imagine if Ada would
be a weakly-typed just-in-time compiled scripting language ran inside
the browser (on embedded device for extra kicks) when something happens
on the web site and you would have to debug why the browser crashes
when a certain script is run. ;)

-- 
Tero Koskinen - http://iki.fi/tero.koskinen/



  parent reply	other threads:[~2012-06-22 10:44 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-08 20:48 Practicalities of Ada for app development wrp
2012-06-08 21:35 ` Jeffrey Carter
2012-06-09  0:40   ` Adam Beneschan
2012-06-09  6:38     ` Jeffrey Carter
2012-06-21 17:14       ` Randy Brukardt
2012-06-21 18:16         ` Adam Beneschan
2012-06-21 19:18           ` J-P. Rosen
2012-06-21 20:30             ` Adam Beneschan
2012-06-21 21:09               ` Randy Brukardt
2012-06-22  4:59                 ` Simon Wright
2012-06-22  5:32                   ` Tero Koskinen
2012-06-22 19:51                     ` Randy Brukardt
2012-06-21 21:15               ` J-P. Rosen
2012-06-22 10:43               ` Tero Koskinen [this message]
2012-06-21 21:00           ` Randy Brukardt
2012-06-21 21:18             ` J-P. Rosen
2012-06-22 19:55               ` Randy Brukardt
2012-06-23  6:43                 ` J-P. Rosen
2012-06-09  4:30   ` BrianG
2012-06-09  7:11   ` Georg Bauhaus
2012-06-13 10:20   ` quiet_lad
2012-06-09  6:55 ` gautier_niouzes
2012-06-09  7:04 ` Georg Bauhaus
2012-06-09  9:25 ` Nomen Nescio
2012-06-09  9:36   ` Dmitry A. Kazakov
2012-06-10  3:46     ` Yannick Duchêne (Hibou57)
2012-06-12 20:10     ` i3text
2012-06-13  7:55       ` Dmitry A. Kazakov
2012-06-21 17:21         ` Randy Brukardt
2012-06-13 10:28     ` quiet_lad
2012-06-13 13:07       ` Dmitry A. Kazakov
2012-06-09 16:09   ` tmoran
2012-06-13 10:29     ` quiet_lad
2012-06-09 23:18   ` darkestkhan
2012-06-10  3:56     ` Yannick Duchêne (Hibou57)
2012-06-10 14:04     ` Dmitry A. Kazakov
2012-06-10 16:51       ` Yannick Duchêne (Hibou57)
2012-06-10 17:00         ` Dmitry A. Kazakov
2012-06-10 17:18           ` Yannick Duchêne (Hibou57)
2012-06-10 19:33             ` Dmitry A. Kazakov
2012-06-10 21:36               ` Nomen Nescio
2012-06-11  8:22                 ` Dmitry A. Kazakov
2012-06-11 14:27                   ` Georg Bauhaus
2012-06-11 14:43                     ` Dmitry A. Kazakov
2012-06-11 16:19                       ` Jacob Sparre Andersen
2012-06-11 18:38                         ` Dmitry A. Kazakov
2012-06-11 17:14                       ` Georg Bauhaus
2012-06-11 18:38                         ` Dmitry A. Kazakov
2012-06-11 20:50                           ` Georg Bauhaus
2012-06-11 21:43                             ` Yannick Duchêne (Hibou57)
2012-06-12  7:55                             ` Dmitry A. Kazakov
2012-06-12  9:48                               ` Georg Bauhaus
2012-06-12 11:44                                 ` Dmitry A. Kazakov
2012-06-12 12:17                                   ` Georg Bauhaus
2012-06-12 12:18                                     ` Dmitry A. Kazakov
2012-06-11 18:29                 ` Adam Beneschan
2012-06-11 19:16                   ` Jeffrey Carter
2012-06-11 21:47                   ` Yannick Duchêne (Hibou57)
2012-06-21 17:39                     ` Randy Brukardt
2012-06-21 17:34                   ` Randy Brukardt
2012-06-10 18:15       ` darkestkhan
2012-06-10 19:25         ` Dmitry A. Kazakov
2012-06-11  6:34         ` Jacob Sparre Andersen
2012-06-21 17:41         ` Randy Brukardt
2012-06-10 15:49   ` Shark8
2012-06-10 17:04     ` Yannick Duchêne (Hibou57)
2012-06-10 19:47       ` Dmitry A. Kazakov
2012-06-11  0:37         ` Nasser M. Abbasi
2012-06-11  8:37           ` Dmitry A. Kazakov
2012-06-12  6:24             ` Yannick Duchêne (Hibou57)
2012-06-12  7:59               ` Dmitry A. Kazakov
2012-06-13 10:35         ` quiet_lad
2012-06-13 13:09           ` Dmitry A. Kazakov
2012-06-14  3:21             ` quiet_lad
2012-06-14  7:58               ` Dmitry A. Kazakov
2012-06-14  8:39                 ` Yannick Duchêne (Hibou57)
2012-06-14  9:26                   ` Dmitry A. Kazakov
2012-06-21 17:51                   ` Randy Brukardt
2012-06-11  0:00     ` Nasser M. Abbasi
2012-06-11  3:23       ` Jeffrey Carter
2012-06-11 21:10         ` Nomen Nescio
2012-06-11 21:55           ` Adam Beneschan
2012-06-12  8:07             ` Nomen Nescio
2012-06-12 15:28               ` Fritz Wuehler
2012-06-12 21:34                 ` Nomen Nescio
2012-06-14 11:12                   ` Nomen Nescio
2012-06-21 18:01                   ` Randy Brukardt
2012-06-12 21:12             ` Nomen Nescio
2012-06-13  0:04               ` Adam Beneschan
2012-06-13  3:04                 ` Shark8
2012-06-13  8:21                   ` Dmitry A. Kazakov
2012-06-13 18:21                     ` Shark8
2012-06-13 19:11                       ` Dmitry A. Kazakov
2012-06-13 22:01                         ` Yannick Duchêne (Hibou57)
2012-06-14  8:02                           ` Dmitry A. Kazakov
2012-06-14  9:10                             ` Yannick Duchêne (Hibou57)
2012-06-14  9:33                               ` Dmitry A. Kazakov
2012-06-21 18:10                                 ` Randy Brukardt
2012-06-13  8:35                 ` Yannick Duchêne (Hibou57)
2012-06-13  8:37                 ` Georg Bauhaus
2012-06-13 10:14                   ` Georg Bauhaus
2012-06-11 22:49           ` Jeffrey Carter
2012-06-13 10:31     ` quiet_lad
2012-06-13 12:57       ` Maciej Sobczak
2012-06-14  4:18         ` quiet_lad
2012-06-14  7:35           ` Ludovic Brenta
2012-06-14 10:02             ` Georg Bauhaus
2012-06-12 19:17 ` i3text
2012-06-12 19:52 ` Vadim Godunko
2012-06-27 18:39 ` Eryndlia Mavourneen
2012-06-27 18:46 ` Eryndlia Mavourneen
2012-06-28 13:23   ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox