Maguyva'da C++: büyük kod tabanları için sınıf ve çağrı grafları
C++ bir çağrının gerçek hedefini ad alanlarının, aşırı yüklemelerin ve sanal gönderimin arkasına gizler. Graf, ajanın onu bulmasına yardım eder.
Uzantılar
.c, .c++, .cc, .cpp, +6 daha
Maguyva, C'yi AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları sistem, aygıt yazılımı ve kütüphane kodunda fonksiyonları, struct'ları, include'ları ve çağıranları izleyebilir.
C’de kodu düzenleyen sınıflar veya modüller yoktur. Yapı fonksiyon çağrılarında, başlık dosyalarında ve struct’larda yaşar; aynı ad yorumlarda, makrolarda ve dize sabitlerinde de geçebilir. Dışa aktarma ve anotasyon makroları bildirimleri sarar ve bu, yalnızca saf C ayrıştıran araçları şaşırtır. Bir ajan için güvenli ilk adım çağrı grafıdır.
Maguyva bu grafı oluşturur; böylece ajan bir değişiklik önermeden önce bir fonksiyonun nereye ulaştığını ve ona neyin ulaştığını görür.
Maguyva .c ve .h dosyalarını kapsar. Fonksiyon tanımları sembol olarak çıkarılır; struct’lar ve union’lar yapısal aramada tür tanımı olarak seçilebilir. #include yönergeleri içe aktarma ilişkisi olur.
Dışa aktarma ve görünürlük makroları (FOO_API, DLLEXPORT veya LIBEXPORT gibi desenler) ile iş parçacığı güvenliği anotasyon makroları (GUARDED_BY ve REQUIRES gibi) ayrıştırmadan önce maskelenir; böylece sardıkları bildirimler normal bildirimler olarak ayrıştırılır. Fonksiyon benzeri makroların gövdeleri ayrıştırılır; nesne benzeri makroların gövdeleri ayrıştırılmaz.
Graf çağrıları, include’ları, bileşik sabitler yoluyla örneklemeyi, tür referanslarını, okuma ve yazmaları ve denetim akışını kaydeder. Proje kodunun öne çıkması için yaklaşık 124 C standart kütüphane çağrısı (printf, malloc, free, memcpy, strlen ve benzerleri) ilişkilerden filtrelenir.
uart_write fonksiyonunu doğrudan veya başka fonksiyonlar üzerinden kim çağırıyor?” (gelen yönde dependency_search)config.h dosyasını dahil ediyor ve onun hangi struct’larını kullanıyor?” (dependency_search, ardından find_symbol)get_task_context).h, C, C++ ve Objective-C uzantı listelerinde yer alır; bu nedenle çok dilli ağaçlarda başlık dosyaları bu profiller arasında paylaşılır.malloc veya memcpy çağrısına ihtiyacınız olduğunda text_pattern_search kullanın.Hızlı başlangıç ile bir repo bağlayın, ardından destek matrisi için uyumluluk sayfasına bakın. Aynı ağaçtaki C++ kodu için C++ rehberini okuyun.
En uygun kullanım
Ajan iş akışları
Motor ayrıntıları
Yararlı MCP giriş noktaları
Tanıma ve her referansa ihtiyacınız olduğunda bir fonksiyon veya struct adıyla kullanın.
İmzası veya hata işleme biçimi değişmeden önce ortak bir fonksiyonda gelen yönde dolaşım kullanın.
"Bir paketin alma kesmesinden protokol ayrıştırıcısına nasıl ilerlediğini açıkla" gibi istemler için kullanın.
İlgili rehberler
C++ bir çağrının gerçek hedefini ad alanlarının, aşırı yüklemelerin ve sanal gönderimin arkasına gizler. Graf, ajanın onu bulmasına yardım eder.
Uzantılar
.c, .c++, .cc, .cpp, +6 daha
Rust'ı kullanmaya değer kılan yapısal güvenlik sınırlarını kaybetmeden Rust'ta yapay zeka yardımı istediğinizde ilgilidir.
Uzantılar
.rs