Please enable JavaScript to view this site.

A-Shell Reference

Navigation: Setup > System Parameters > TRACE

TRACE Option FUNCS

Scroll Prev Top Next More

Written August 2025

TRACE=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 "doggie" 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 statements 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.). For example:

.SET TRACE FUNCS ON

It also requires that you have access to an LSX file matching the program so that you can decipher the @xxxxxx locations. See VIEWASHLOG.LIT for a related enhancement.