Right now, you get an error together with a line number.

A good fix would be to do a stack backtrace. If it is in a subroutine, show
the line that it was called from including the values of all of the
arguments. Then, if that line is in a subroutine, show where it was called
from with its arguments. Recursively.

A second aid that would be handy is to have tracing. As each line is
interpreted, output the raw line (and file:linenumber) to a file. Also
output the expanded values of any arguments. (So: X[#21+#44] would be
output with as X[4.3333] if that's the sum.) When an error is detected, the
trace file would be flushed so that the user could look at it.

A third aid would be like gdb. It would have the ability to set a
breakpoint on a line. It would also cause a "break" when there was an
error. Within this tool, one could look at the current subroutine stack,
look at local and global named parameters, etc.

The first two tools would be pretty easy. The third would be somewhat
harder.

Ken


On Fri, Nov 6, 2015 at 11:11 PM, EBo <e...@sandien.com> wrote:

> On Nov 6 2015 4:44 PM, Gene Heskett wrote:
> > On Friday 06 November 2015 09:09:26 EBo wrote:
> >
> >> On Nov 6 2015 6:39 AM, Gene Heskett wrote:
> >> > On Friday 06 November 2015 04:53:15 andy pugh wrote:
> >> >> On 6 November 2015 at 04:29, Fernand Veilleux
> >> >> <fernveill...@gmail.com>
> >> >
> >> > wrote:
> >> >> > gcode is terrible IMHO.
> >> >>
> >> >> It's a terrible programming language, but then it was never
> >> >> intended to be one.
> >> >
> >> > I wouldn't condem it quite that vociferously.  It has the basic
> >> trig
> >> > functions, all the basic control loop stuff, and several ways to
> >> do
> >> > a subroutine.  My biggest and loudest bitch is the inability to
> >> > troubleshoot an errant arc move in a subroutine that may have 10
> >> of
> >> > them
> >> > in it,  it gets blamed on the line that calls the sub.  I have had
> >> > to convert my blanket-chest code from 3 subroutines, to multiple
> >> > copies of
> >> > the subroutine but inline.  In the process, I probably have 300
> >> LOC
> >> > out
> >> > of 650 or so that are never executed.  Its a horrible mess, but it
> >> > works.
> >>
> >> So then the question is "how do we develop better debugging tools?"
> >> or at least analytic tools of the results?  For example, I can see
> >> generating a little more output to go from the motion planner to the
> >> tool path display.  If those lines and arcs had the program line
> >> number somehow associated with it, then you would be able to
> >> possible
> >> zoom in and ask a question about a specific line segment displayed.
> >> It would then tell you which line of code generated it.  There might
> >> also be other metadata you want to associate with it (like depth of
> >> recursion or stack depth, ... hmmm... I do not know off the top of
> >> my
> >> head).  If we did not provide analytics, then it would be good to be
> >> able to step into a subroutine to execute it as well as run a call.
> >> Last version of LCNC I used had *something* like this, but I do
> >> remember that it did not play well with subroutines.  Not sure about
> >> the latest and greatest.  What I am envisioning here is the GDB
> >> equivalent of motion control -- full variable querying and setting
> >> capabilities, and the ability to set break points and other useful
> >> functionality.
> >>
> >> Just a thought...  now back to my normal programming...
> >>
> >>    EBo --
> >>
> > Well, such thoughts would find me encouraging the effort for sure.
>
> I will add this to the end of a 50 level project queue...  Seriously
> though, it might not be that bad to implement.  A bit noisy though (but
> that is what dubug switches are for).  Hmmm... maybe if Google Summer of
> Code sponsored it, this would be a useful idea and suitable for an
> intern project...
>
>    EBo --
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers
>



-- 
Kenneth Lerman
55 Main Street
Newtown, CT 06470
------------------------------------------------------------------------------
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to