Maguyva의 C 지원: 시스템·임베디드 코드를 위한 호출 그래프
C에서는 호출 그래프가 곧 아키텍처입니다. 에이전트는 편집하기 전에 그것부터 읽어야 합니다.
확장자
.c, .h
Delphi와 Free Pascal 애플리케이션은 다른 모든 코드가 쓰는 몇 개의 큰 유닛을 중심으로 자라는 경우가 많습니다. 폼은 베이스 폼을, 컴포넌트는 베이스 컴포넌트를 상속하고, 비즈니스 규칙은 십여 개 화면이 호출하는 프로시저 안에 있습니다. 파일 단위로는 잘 읽히지만, 변경이 잘못되는 곳은 바로 의존성입니다.
Maguyva는 먼저 에이전트에게 유닛과 클래스 구조를 건네므로, 무엇이든 쓰기 전에 변경이 어디에 닿는지 말할 수 있습니다.
Maguyva는 .pas와 .pp 소스 유닛을 지원합니다. 프로시저와 함수 정의는 호출 가능한 심볼로 추출되며, 정의 이름에서 procedure, function, var, const 키워드는 제거됩니다. 클래스와 인터페이스는 구조적 검색에서 타입 정의로 선택할 수 있습니다.
임포트는 uses 절에서 만들어지며, 키워드를 떼어 내고 유닛 이름을 그래프에 저장합니다. 호출은 멤버 접두사, 인자, 감싸는 괄호를 제거해 정규화되므로, Self.Save(x)로 쓰인 호출은 Save로 저장됩니다.
그래프는 호출, 상속, 인터페이스 구현, 오버라이드, 인스턴스화, 타입 참조, 읽기와 쓰기, 예외 발생과 핸들러 엣지를 기록합니다. 약 107개의 런타임 라이브러리 루틴(WriteLn, ReadLn, Inc, Dec, Ord 등)은 관계에서 제외됩니다.
DataModuleMain을 사용하는 유닛은 무엇이고, 거기서 무엇을 호출하나요?” (dependency_search incoming)TBaseEditForm을 상속하는 폼은 무엇이고, 어떤 메서드를 오버라이드하나요?” (find_symbol, 그다음 dependency_search)get_task_context).pas와 .pp뿐입니다. .dpr와 .dfm 같은 Delphi 프로젝트 파일과 폼 파일은 확장자 목록에 없으므로, 폼 레이아웃과 프로젝트 구성은 그래프 밖에 있습니다.structural_search의 methods 프리셋은 아무것도 선택하지 않습니다. functions 프리셋을 사용하세요.text_pattern_search를 사용하세요.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 애플리케이션이 C 라이브러리를 링크한다면 C 가이드도 읽어 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
정의와 참조가 필요할 때 클래스, 폼, 프로시저 이름으로 쓰세요.
공유 유닛이나 베이스 클래스에 incoming 탐색을 써서 어떤 유닛과 하위 클래스가 의존하는지 확인하세요.
“버튼 핸들러에서 데이터베이스 유닛까지 송장이 어떻게 전기되는지 설명해 줘” 같은 프롬프트에 쓰세요.
관련 가이드
C에서는 호출 그래프가 곧 아키텍처입니다. 에이전트는 편집하기 전에 그것부터 읽어야 합니다.
확장자
.c, .h
폭넓은 언어 지원이 단순한 통계 수치를 넘어 현대화 도구로 거듭나는 지점입니다.
확장자
.cbl, .cob, .cpy