You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `.callgraph` section is used to store call graph information for each function. The section contains a series of records, with each record corresponding to a single function.
4
+
5
+
## Per Function Record Layout
6
+
7
+
Each record in the `.callgraph` section has the following binary layout:
| Format Version |`uint8_t`| 8 | The version of the record format. The current version is 0. |
12
+
| Flags |`uint8_t`| 8 | A bitfield where: Bit 0 is set if the function is a potential indirect call target; Bit 1 is set if there are direct callees; Bit 2 is set if there are indirect callees. The remaining 5 bits are reserved. |
13
+
| Function Entry PC |`uintptr_t`| 32/64 | The address of the function's entry point. |
14
+
| Function Type ID |`uint64_t`| 64 | The type ID of the function. This field is non-zero if the function is a potential indirect call target and its type is known. |
15
+
| Number of Unique Direct Callees |`ULEB128`| Variable | The number of unique direct call destinations from this function. This field is only present if there is at least one direct callee. |
16
+
| Direct Callees Array |`uintptr_t[]`| Variable | An array of unique direct callee entry point addresses. This field is only present if there is at least one direct callee. |
17
+
| Number of Unique Indirect Target Type IDs|`ULEB128`| Variable | The number of unique indirect call target type IDs. This field is only present if there is at least one indirect target type ID. |
18
+
| Indirect Target Type IDs Array |`uint64_t[]`| Variable | An array of unique indirect call target type IDs. This field is only present if there is at least one indirect target type ID. |
0 commit comments