在build code時除了有 .o檔案外 還有 .su檔案 (stack used)
https://gcc.gnu.org/onlinedocs/gnat_ugn/Static-Stack-Usage-Analysis.html
6.6.2 Static Stack Usage Analysis
A unit compiled with-fstack-usage
will generate an extra file
that specifies
the maximum amount of stack used, on a per-function basis.
The file has the same
basename as the target object file with a .su
extension.
Each line of this file is made up of three fields:
- * The name of the function.
- * A number of bytes.
- * One or more qualifiers: static, dynamic, bounded.
The qualifier static means that the function frame size is purely static. It usually means that all local variables have a static size. In this case, the second field is a reliable measure of the function stack utilization.
The qualifier dynamic means that the function frame size is not static. It happens mainly when some local variables have a dynamic size. When this qualifier appears alone, the second field is not a reliable measure of the function stack analysis. When it is qualified with bounded, it means that the second field is a reliable maximum of the function stack utilization.
A unit compiled with
-Wstack-usage
will issue a warning for each
subprogram whose stack usage might be larger than the specified amount of
bytes. The wording is in keeping with the qualifier documented above.
沒有留言:
張貼留言