trace_data_flow
Trace how a data type flows to a target function by identifying call paths from functions mentioning that type to the target symbol. Useful for understanding data structure travel in synchronous driver stacks.
Instructions
Read-only. Trace how data of a given type flows to a target function.
Finds functions whose signature mentions type_name, then looks for call paths from those functions to to_symbol. Returns a data flow map — useful for understanding how a data structure travels through the system to its destination.
Works best for synchronous driver stacks (e.g. sensor read → I2C write).
Cannot follow async flows (message queues, interrupts, RS485 callbacks).
For exact call-graph queries use the find_* family;
verify specific paths with find_call_path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum source functions to trace (default 15). | |
| max_depth | No | Maximum call path depth (default 8). | |
| to_symbol | Yes | Target symbol name. E.g. 'uart_send' or 'UART_DRIVER::send'. | |
| type_name | Yes | Type name to trace. E.g. 'SensorData' or 'Config::SensorData'. | |
| project_root | No | Project root. Auto-detected if omitted. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |