Maguyva의 C++ 지원: 대규모 코드를 위한 클래스와 호출 그래프
C++는 진짜 호출 대상을 네임스페이스, 오버로드, 가상 디스패치 뒤에 숨깁니다. 그래프는 에이전트가 그것을 찾도록 돕습니다.
확장자
.c, .c++, .cc, .cpp, +6개 더보기
C에는 코드를 정리해 줄 클래스나 모듈이 없습니다. 구조는 함수 호출, 헤더, 구조체 안에 있고, 같은 이름이 주석, 매크로, 문자열 리터럴에도 나타납니다. 익스포트 매크로와 어노테이션 매크로가 선언을 감싸기 때문에, 순수한 C만 파싱하는 도구는 걸려 넘어집니다. 에이전트에게 안전한 첫걸음은 호출 그래프입니다.
Maguyva는 그 그래프를 만들어, 에이전트가 변경을 제안하기 전에 함수가 무엇에 도달하고 무엇이 그 함수에 도달하는지 볼 수 있게 합니다.
Maguyva는 .c와 .h를 지원합니다. 함수 정의는 심볼로 추출되고, 구조체와 공용체는 구조적 검색에서 타입 정의로 선택할 수 있습니다. #include 지시문은 임포트 관계가 됩니다.
익스포트·가시성 매크로(FOO_API, DLLEXPORT, LIBEXPORT 같은 패턴)와 스레드 안전성 어노테이션 매크로(GUARDED_BY, REQUIRES 등)는 파싱 전에 마스킹되므로, 이들로 감싼 선언도 선언으로 파싱됩니다. 함수형 매크로의 본문은 파싱되고, 객체형 매크로의 본문은 파싱되지 않습니다.
그래프는 호출, include, 복합 리터럴 인스턴스화, 타입 참조, 읽기와 쓰기, 제어 흐름을 기록합니다. 약 124개의 표준 C 라이브러리 호출(printf, malloc, free, memcpy, strlen 등)은 관계에서 걸러지므로 프로젝트 코드가 더 잘 드러납니다.
uart_write를 직접 또는 다른 함수를 거쳐 호출하는 것은 누구인가요?” (dependency_search incoming)config.h를 include하는 파일은 무엇이고, 그 안의 어떤 구조체를 쓰나요?” (dependency_search, 그다음 find_symbol)get_task_context).h는 C, C++, Objective-C의 확장자 목록에 모두 들어 있어서, 여러 언어가 섞인 헤더는 이 프로필들이 공유합니다.malloc이나 memcpy가 필요하다면 text_pattern_search를 사용하세요.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 같은 트리에 C++ 코드가 있다면 C++ 가이드를 읽어 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
정의와 모든 참조가 필요할 때 함수나 구조체 이름으로 쓰세요.
공유 함수의 시그니처나 오류 처리를 바꾸기 전에 incoming 탐색을 쓰세요.
“패킷이 수신 인터럽트에서 프로토콜 파서까지 어떻게 이동하는지 설명해 줘” 같은 프롬프트에 쓰세요.
관련 가이드
C++는 진짜 호출 대상을 네임스페이스, 오버로드, 가상 디스패치 뒤에 숨깁니다. 그래프는 에이전트가 그것을 찾도록 돕습니다.
확장자
.c, .c++, .cc, .cpp, +6개 더보기
Rust를 가치 있게 만드는 구조적 안전장치를 잃지 않으면서 Rust에서 AI 지원을 원할 때 유용합니다.
확장자
.rs