Previous: Static Stack Usage Analysis, Up: Stack Related Facilities [Contents][Index]
It is possible to measure the maximum amount of stack used by a task, by
adding a switch to gnatbind
, as:
$ gnatbind -u0 file
With this option, at each task termination, its stack usage is output on
stderr
.
It is not always convenient to output the stack usage when the program
is still running. Hence, it is possible to delay this output until program
termination. for a given number of tasks specified as the argument of the
-u
option. For instance:
$ gnatbind -u100 file
will buffer the stack usage information of the first 100 tasks to terminate and output this info at program termination. Results are displayed in four columns:
Index | Task Name | Stack Size | Stack Usage
where:
By default the environment task stack, the stack that contains the main unit, is not processed. To enable processing of the environment task stack, the environment variable GNAT_STACK_LIMIT needs to be set to the maximum size of the environment task stack. This amount is given in kilobytes. For example:
$ set GNAT_STACK_LIMIT 1600
would specify to the analyzer that the environment task stack has a limit of 1.6 megabytes. Any stack usage beyond this will be ignored by the analysis.
The package GNAT.Task_Stack_Usage
provides facilities to get
stack-usage reports at run time. See its body for the details.
Previous: Static Stack Usage Analysis, Up: Stack Related Facilities [Contents][Index]