[Info-vax] Fortran Debug Step odd behavior on continuation lines

Dave Froble davef at tsoft-inc.com
Sat Aug 29 11:26:13 EDT 2020


On 8/29/2020 11:07 AM, Tom Wade wrote:
> Hi,
>
> I've noticed the following odd behavior when single stepping through a
> Fortran program with continuation lines.  I've always worked around it,
> as it never caused me any real problems, but I finally had the time to
> put it down, so that someone might explain what I've been doing wrong
> all these years.
>
> Consider the following trivial program, compiled /debug/noopt and
> launched with screen mode debugging.
>
> ─ SRC: module TEST
> -scroll-source───────────────────────────────────────────────
> ->   1:         Program Test
>      2:
>      3:         Implicit        None
>      4:         Integer         i, j
>      5:
>      6:         i = 0
>      7:         j = 0
>      8:         i = i +
>      9:      &      j +
>     10:      &      5
>     11:         Call Exit
>     12:         End
>
> If you STEP (or hit KP0), the Debugger steps through the program line by
> line.  First step goes to line 6, second to line 7 etc until it gets to
> 8.  At 8, I would expect the Debugger to step to 11, as 9 & 10 are
> continuation lines, effectively part of the same statement.  Instead it
> steps to 9. The really strange thing is the next step jumps back to 8.
> The one after that goes to 9, the next one back to 8 again, and the next
> one goes to 11 (skipping 9 & 10).  The value of i only changes when it
> arrives at 11.
>
> Not a real problem, but I guess finally my curiosity got the better of
> me.  Anyone else seen or can understand this ?
>
> OpenVMS Alpha 8.4
> HP Fortran V8.2-104679
> HP Fortran 77 V7.6-198 (/old_f77)
> (but it's been around for as long as I remember, and that's quite  a
> while!).
>
> Tom Wade
> tom dot wade at tomwade got eu
>

At the risk of John getting a good laugh ...

The way I learned it so many years ago is that when a compiler comes 
upon a complex operation, it parses it and pushes each step onto a 
stack, then pops each off the stack when processing.

So, your line 10 was last onto the stack, so the first popped off, then 
line 9, and finally it completes the operation.

-- 
David Froble                       Tel: 724-529-0450
Dave Froble Enterprises, Inc.      E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA  15486



More information about the Info-vax mailing list