C++ w Maguyva: grafy klas i wywołań dla dużych baz kodu
C++ ukrywa prawdziwy cel wywołania za przestrzeniami nazw, przeciążeniami i wirtualnym dispatchem. Graf pomaga agentowi go znaleźć.
Rozszerzenia
.c, .c++, .cc, .cpp, +6 więcej
Maguyva obsługuje C przez AST, symbole i graf, dzięki czemu agenci AI śledzą funkcje, struktury, include'y i wywołujących w kodzie systemowym, firmware i bibliotekach.
C nie ma klas ani modułów, które porządkowałyby kod. Struktura żyje w wywołaniach funkcji, nagłówkach i strukturach, a ta sama nazwa może pojawić się w komentarzach, makrach i literałach tekstowych. Makra eksportu i adnotacji otaczają deklaracje, przez co potykają się narzędzia, które potrafią parsować tylko czyste C. Dla agenta bezpiecznym pierwszym krokiem jest graf wywołań.
Maguyva buduje ten graf, aby agent widział, do czego dociera funkcja i co dociera do niej, zanim zaproponuje zmianę.
Maguyva obejmuje .c i .h. Definicje funkcji są wyodrębniane jako symbole, a struktury i unie można wybrać jako definicje typów w wyszukiwaniu strukturalnym. Dyrektywy #include stają się relacjami importu.
Makra eksportu i widoczności (wzorce takie jak FOO_API, DLLEXPORT czy LIBEXPORT) oraz makra adnotacji bezpieczeństwa wątków (takie jak GUARDED_BY i REQUIRES) są maskowane przed parsowaniem, więc otoczone nimi deklaracje nadal są rozpoznawane jako deklaracje. Treści makr funkcyjnych są parsowane; treści makr obiektowych nie.
Graf zapisuje wywołania, include’y, tworzenie instancji przez literały złożone, odwołania do typów, odczyty i zapisy oraz przepływ sterowania. Około 124 wywołań biblioteki standardowej C (printf, malloc, free, memcpy, strlen i podobne) jest filtrowanych z relacji, aby wyróżnić kod projektu.
uart_write, bezpośrednio lub przez inne funkcje?” (dependency_search incoming)config.h i których jego struktur używają?” (dependency_search, potem find_symbol)get_task_context).h występuje na listach rozszerzeń C, C++ i Objective-C, więc nagłówki w drzewach wielojęzycznych są współdzielone między tymi profilami.malloc lub memcpy, użyj text_pattern_search.Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. Dla kodu C++ w tym samym drzewie przeczytaj przewodnik po C++.
Najlepsze dopasowanie
Workflow agentów
Szczegóły silnika
Przydatne punkty wejścia MCP
Używaj go z nazwą funkcji lub struktury, gdy potrzebujesz definicji i każdego odwołania.
Użyj przejścia incoming na współdzielonej funkcji przed zmianą jej sygnatury lub obsługi błędów.
Używaj go do promptów typu „wyjaśnij, jak pakiet przechodzi od przerwania odbioru do parsera protokołu”.
Powiązane przewodniki
C++ ukrywa prawdziwy cel wywołania za przestrzeniami nazw, przeciążeniami i wirtualnym dispatchem. Graf pomaga agentowi go znaleźć.
Rozszerzenia
.c, .c++, .cc, .cpp, +6 więcej
Ważne, gdy chcesz pomocy AI w Rust bez utraty strukturalnych barier ochronnych, które sprawiają, że Rust jest wart używania.
Rozszerzenia
.rs