Please enable JavaScript to view this site.

A-Shell 7.0 Release Notes

Navigation: Notes by Version and Date

1776 — 18 August 2025

Scroll Prev Top Next More

1776.0.1   New

System trace flag FUNCS activates automatic tracing of function and procedure calls.

1775.0.2   EIR

FUNCS switch facilitates viewing of the FUNCS traces in VIEWASHLOG with automatic translation of the @xxxxxx locations into the corresponding function and procedure names.

1775.0.3   New

VIEWASHLOG 1.0(109):  Two new switches make it easier to use VIEWASHLOG on log files that have been transferred from another system.

/FILE:logspec: view the specified file instead of the %MIAME%/ashlog.* files.

/LOCAL{:dir} : look for the ashlog.### files in the current or specified directory rather than in the %MIAME% directory.

 

 

 

System Trace Flag FUNCS

The system trace flag FUNCS activates automatic tracing of function and procedure calls (calling parameters and the return value), including XPUTARG operations. Some examples of how these traces show up in the ashlog:

Function Call and Return

The following shows a function call to which two arguments, "today+3" and "" are passed. That function in turn makes two additional function calls before returning the result of "08/21/2025". Note that the nested calls are indented (2 spaces per level) and the function return is lines up with the function call...

...<FNDATETIME:62e>     -> @0016ac( S50[today+3],S3[] )

...<FNDATETIME:1a3e>      -> @0000b4( S1[t] )

...<FNDATETIME:101>       -1 <- @0000b4()

...<FNDATETIME:1a50>      -> @00379a( S50[today+3],S3[] )

...<FNDATETIME:3ad6>      08/21/2025 <- @00379a()

...<FNDATETIME:1a66>    08/21/2025 <- @0016ac()

 

Procedure with a Parameter "doggied" Passed to it

The procedure passes "perrito" back to the same parameter before returning.

...<ADDSVUE:2223>      -> @003af1( S30[doggie] )

...<ADDSVUE:c39>       xputarg @1=S30[perrito]

...<ADDSVUE:c41>       <- @003af1()

 

The overall effect is similar to what you can get by embedding trace.print statement at the start and end of each function and procedure, and after each xputarg, but doesn't require any editing or recompilation of the program. It just requires that you enable the FUNCS trace by one of the methods (SET, system message window properties, editing the MIAME.INI, etc.), e.g.

.SET TRACE FUNCS ON

It also requires that you have access to an LSX file (created via COMPIL/LF) matching the program so that you can decipher the @xxxxxx locations. See VIEWASHLOG below for a related enhancement.

 

 

 

Viewing FUNCS traces with VIEWASHLOG

The /FUNCS=program switch facilitates viewing of the FUNCS traces with automatic translation of the @xxxxxx locations into the corresponding function and procedure names. This requires that VIEWASHLOG have access to the LSX file corresponding to the specified program, either in the current directory, or you can specify another directory via the /LSX=directory switch. Using the FNDATETIME example above and assuming that the FNDATETIME.LSX file is the SRCARC: directory, this command ...

.VIEWASHLOG/FUNCS=FNDATETIME/LSX=SRCARC:

... creates a view similar to this with the @xxxxxx locations replaced by the actual function names...

...<FNDATETIME:62e>     -> @Fn'Date'To'MM'DD'CCYY$( S50[today+3],S3[] )

...<FNDATETIME:1a3e>      -> @fn'isalpha( S1[t] )

...<FNDATETIME:101>       -1 <- @fn'isalpha()

...<FNDATETIME:1a50>      -> @Fn'Date'Alias'To'MM'DD'CCYY$( S50[today+3],S3[] )

...<FNDATETIME:3ad6>      08/21/2025 <- @Fn'Date'Alias'To'MM'DD'CCYY$()

...<FNDATETIME:1a66>    08/21/2025 <- @Fn'Date'To'MM'DD'CCYY$()

 

Note that although the FUNCS TRACE flag applies to all programs and SBX's, VIEWASHLOG can only translate the locations to names for one module at a time. In order to focus on an SBX, append it to the /FUNCS=program switch (separated by a colon), e.g.

.VIEWASHLOG/FUNCS=MYPROG:MYSBX/LSX=SRCARC: