C++ i Maguyva: klasse- og kaldgrafer til store kodebaser
C++ skjuler det egentlige kaldmål bag navnerum, overloads og virtuel dispatch. Grafen hjælper en agent med at finde det.
Filendelser
.c, .c++, .cc, .cpp, +6 flere
Maguyva understøtter C med AST, symboler og graf, så AI-agenter kan følge funktioner, structs, includes og kaldere i system-, firmware- og bibliotekskode.
C har ingen klasser eller moduler, der organiserer koden. Strukturen ligger i funktionskald, headere og structs, og det samme navn kan dukke op i kommentarer, makroer og strengliteraler. Eksport- og annotationsmakroer omslutter erklæringer, hvilket får værktøjer, der kun kan parse ren C, til at snuble. For en agent er kaldgrafen det sikre første skridt.
Maguyva bygger den graf, så en agent kan se, hvad en funktion når, og hvad der når den, før den foreslår en ændring.
Maguyva dækker .c og .h. Funktionsdefinitioner udtrækkes som symboler, og structs og unions kan vælges som typedefinitioner i strukturel søgning. #include-direktiver bliver til importrelationer.
Eksport- og synlighedsmakroer (mønstre som FOO_API, DLLEXPORT eller LIBEXPORT) og annotationsmakroer til trådsikkerhed (som GUARDED_BY og REQUIRES) maskeres før parsning, så erklæringer, der er omsluttet af dem, stadig parses som erklæringer. Kroppe i funktionslignende makroer parses; kroppe i objektlignende makroer gør ikke.
Grafen registrerer kald, includes, instansiering via sammensatte literaler, typereferencer, læsninger og skrivninger samt kontrolflow. Omkring 124 kald i C’s standardbibliotek (printf, malloc, free, memcpy, strlen og lignende) filtreres fra relationerne, så projektets kode træder frem.
uart_write, direkte eller via andre funktioner?” (dependency_search incoming)config.h, og hvilke af dens structs bruger de?” (dependency_search, derefter find_symbol)get_task_context).h står på listerne over filendelser for C, C++ og Objective-C, så headere i træer med flere sprog deles mellem de profiler.text_pattern_search, når du har brug for hver malloc eller memcpy.Tilslut et repository med hurtigstarten, og se derefter understøttelsesmatricen på kompatibilitetssiden. Til C++-kode i samme træ kan du læse guiden til C++.
Bedst egnet til
Agent-arbejdsgange
Motordetaljer
Nyttige MCP-indgange
Brug det til et funktions- eller structnavn, når du har brug for definitionen og hver reference.
Brug incoming-gennemløb på en delt funktion, før dens signatur eller fejlhåndtering ændres.
Brug det til prompts som "forklar, hvordan en pakke går fra modtage-interruptet til protokolparseren".
Relaterede guides
C++ skjuler det egentlige kaldmål bag navnerum, overloads og virtuel dispatch. Grafen hjælper en agent med at finde det.
Filendelser
.c, .c++, .cc, .cpp, +6 flere
Relevant når du ønsker AI-assistance i Rust uden at miste de strukturelle sikkerhedsmekanismer, der gør Rust værd at bruge.
Filendelser
.rs