/usr/share/gps/plug-ins/gnatstack.py is in gnat-gps-common 5.0-13.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | """This file provides support for gnatstack (static stack usage).
"""
############################################################################
## No user customization below this line
############################################################################
import GPS, os_utils, os.path
tool = os_utils.locate_exec_on_path("gnatstack")
if tool != "":
GPS.parse_xml ("""
<!-- Support for running GNATStack as a build target -->
<target-model name="gnatstack" category="">
<description>Run GNATStack for analysis</description>
<command-line>
<arg>gnat</arg>
<arg>stack</arg>
<arg>-pi</arg>
<arg>-Q</arg>
<arg>-x</arg>
<arg>-Wa</arg>
<arg>-P%PP</arg>
</command-line>
<switches>
</switches>
</target-model>
<target model="gnatstack" category="GNATStack" name="Run GNATStack">
<in-toolbar>FALSE</in-toolbar>
<in-menu>FALSE</in-menu>
<launch-mode>MANUALLY_WITH_DIALOG</launch-mode>
<command-line>
<arg>gnat</arg>
<arg>stack</arg>
<arg>-pi</arg>
<arg>-Q</arg>
<arg>-x</arg>
<arg>-Wa</arg>
<arg>-P%PP</arg>
</command-line>
</target>
<!-- Support for GNATStack's switches in Project Properties Editor -->
<tool name="GNATStack" package="Stack" attribute="switches" index="">
<switches lines="4">
<title line="1" column="1">Entry points</title>
<field line="1" column="1" switch="-e" separator=" " label="use specific list of subprograms as entry points (e1,e2,...)"/>
<field line="1" column="1" switch="-r" separator=" " label="use all subprograms matching reg-exp as entry points"/>
<check line="1" column="1" switch="-a" label="use all subprograms as entry points"/>
<title line="2" column="1">Stack frame sizes</title>
<spin line="2" column="1" switch="-c" separator=" " min="0" max="2147483647" default="0" label="size of frame for cycle entry"/>
<spin line="2" column="1" switch="-d" separator=" " min="0" max="2147483647" default="0" label="size of frame for unbounded (dynamic) calls"/>
<spin line="2" column="1" switch="-u" separator=" " min="0" max="2147483647" default="0" label="size of frame for unknown (external) calls"/>
<title line="3" column="1">CI in object files</title>
<field line="3" column="1" switch="-s" separator="=" label="name of the section where the .ci is in the object"/>
<field line="3" column="1" switch="-oc" separator="=" label="name of the objcopy executable"/>
<check line="4" column="1" switch="-ca" label="extract all cycles"/>
<check line="4" column="1" switch="-k" label="keep temporary files"/>
</switches>
</tool>
""")
|