MCPcopy Create free account
hub / github.com/Klipper3d/klipper / function

Class function

scripts/checkstack.py:28–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26"""
27
28class function:
29 def __init__(self, funcaddr, funcname):
30 self.funcaddr = funcaddr
31 self.funcname = funcname
32 self.basic_stack_usage = 0
33 self.max_stack_usage = None
34 self.yield_usage = -1
35 self.max_yield_usage = None
36 self.total_calls = 0
37 # called_funcs = [(insnaddr, calladdr, stackusage), ...]
38 self.called_funcs = []
39 self.subfuncs = {}
40 # Update function info with a found "yield" point.
41 def noteYield(self, stackusage):
42 if self.yield_usage < stackusage:
43 self.yield_usage = stackusage
44 # Update function info with a found "call" point.
45 def noteCall(self, insnaddr, calladdr, stackusage):
46 if (calladdr, stackusage) in self.subfuncs:
47 # Already noted a nearly identical call - ignore this one.
48 return
49 self.called_funcs.append((insnaddr, calladdr, stackusage))
50 self.subfuncs[(calladdr, stackusage)] = 1
51
52# Find out maximum stack usage for a function
53def calcmaxstack(info, funcs):

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected