C Support in Maguyva: Call Graphs for Systems and Embedded Code
In C, the call graph is the architecture. An agent should read it before it edits.
Extensions
.c, .h
Maguyva parses C++ with AST, symbol, and graph support, so AI agents can follow classes, namespaces, virtual overrides, and callers in large C++ codebases.
In C++, names are not unique. send might be a free function, a member of three classes, and an override in a fourth. Namespaces, templates, and out-of-line definitions such as Socket::send in a .cpp file split one type across many files. Text search returns every match; it does not tell an agent which one a call reaches.
Maguyva indexes classes, members, and calls with their owners attached, so an agent can follow the real structure before it edits.
Maguyva covers the common C++ source and header extensions, including .cpp, .cc, .cxx, .hpp, .hh, and .hxx. Classes, structs, and functions are extracted, and an out-of-line definition such as void Socket::send() is attributed to its owner class and namespace. Virtual members are recorded, and template parameters are part of signatures.
Receiver typing follows parameters, local declarations, fields, range-based for loops, and auto, and it looks through unique_ptr, shared_ptr, and optional, so a call such as conn->send() can resolve to the right class. Base-class clauses feed inheritance, and new expressions count as instantiation.
The same export- and annotation-macro masking as C applies. About 273 standard-library names (std::cout, std::endl, printf, and similar) are filtered from relationships. The graph records calls, includes, inheritance, overrides, instantiation, type references, reads and writes, and throw edges.
Renderer::draw, and who calls it?” (dependency_search)OrderBook::match and every caller.” (find_symbol)get_task_context).h appears in the C, C++, and Objective-C extension lists, so headers in mixed C and C++ trees are shared between those profiles.text_pattern_search for macro and std:: usage.Connect a repository with the quickstart, then check the support matrix on the compatibility page. If parts of the tree are plain C, read the C guide too.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Use it for a qualified name such as `OrderBook::match` when you need the definition and callers.
Use it on a base class or virtual method to find overrides and callers before a signature change.
Use it for prompts like “explain how a market-data message reaches the strategy engine.”
Related guides
In C, the call graph is the architecture. An agent should read it before it edits.
Extensions
.c, .h
Relevant when you want AI assistance in Rust without losing the structural guardrails that make Rust worth using.
Extensions
.rs