CallNode is a node in the call graph (that is, a function). Because this is determined after linking, there may be multiple names for a single function (due to aliases). It is also possible multiple functions have the same name (but are in fact different), for example for static functions in C.
| 51 | // (due to aliases). It is also possible multiple functions have the same name |
| 52 | // (but are in fact different), for example for static functions in C. |
| 53 | type CallNode struct { |
| 54 | Names []string |
| 55 | Address uint64 // address at which the function is linked (without T bit on ARM) |
| 56 | Size uint64 // symbol size, in bytes |
| 57 | Children []*CallNode // functions this function calls |
| 58 | FrameSize uint64 // frame size, if FrameSizeType is Bounded |
| 59 | FrameSizeType SizeType // can be Undefined or Bounded |
| 60 | stackSize uint64 |
| 61 | stackSizeType SizeType |
| 62 | missingFrameInfo *CallNode // the child function that is the cause for not being able to determine the stack size |
| 63 | } |
| 64 | |
| 65 | func (n *CallNode) String() string { |
| 66 | if n == nil { |
nothing calls this directly
no outgoing calls
no test coverage detected