If I have a command split over multiple lines such
1: myProc myargs \
3: myProc 2ndCall \ 4: moreArgs
then 'info frame <i>' correctly reports the
invocation lines of myProc.
If I source the script containing the above
invocations, then 'info frame' appears to lose
count of the escaped newlines.
In particular, when I call 'info frame i' to get
the location of the "myProc call":
- the first call correctly returns "line 1"
- the second call incorrectly returns "line 2".
If there are more multi-line commands, the line
count goes off by one more, for each escaped newline.
It seems that location tracking has not incremented
the line number for the escaped newline.
1: myProc [myOtherProc arg1] \ 2: [myOtherProc arg2]
[info frame] reports "1" as the caller-line for both invocations of "myOtherProc". I expected "2"
as the caller location of for the invocation which
used "arg2". (I have no expectation for the order
of invocation for the two calls to "myOtherProc".)
The attached testcase illustrates the problem in
a number of cases. In particular:
- all but the first "set_false_path" line numbers
is incorrect (and off by one more on each call)
- the line number reported for the calls to
"get_pins" illustrates the subcommand caller
tar zxf infoFrameBug.tgz
... note that the very last "set_false_path" is reported to be on line 57...but is actually on line 61 of the file.
The bug exists in the original 8.4 TIP patch for the
'info frame' feature, and still exists in the 8.5.3
TCL release that I downloaded this morning.
The bug appears to occur only when I
...not when I invoke the script directly.
Henry (Cox) email@example.com