Belgeler / IDE
Hata ayıklama
Java, Node.js, tarayıcı, Python, Go, .NET ve PL/SQL'de aynı panelden hata ayıklayın; önerilen yapılandırmalar ve yalnızca izninizle kurulan hata ayıklayıcılarla.
Yuli her dilde o dilin referans hata ayıklayıcısını kullanır ve her şeyi aynı panelde gösterir: yığın, değişkenler, değerlendirme konsolu ve breakpoint'ler. Eksik olan yalnızca siz izin verirseniz kurulur.
| Dil | Hata ayıklayıcı | Yuli nasıl başlatır |
|---|---|---|
| Java ve JVM | Yerleşik JDWP istemcisi | JVM'i başlatır veya ona bağlanır |
| Node.js | Source map desteğiyle Chrome DevTools Protocol (CDP) | node --inspect veya bir sürece bağlanma |
| Tarayıcı | Chrome, Chromium veya Edge'de CDP | Ayrı bir profil, asla sizinki değil |
| Python | debugpy (DAP) | Projenin sanal ortamıyla python -m debugpy.adapter |
| Go | Delve (DAP) | dlv dap veya çalışan bir dlv --headless'e bağlanma |
| .NET | netcoredbg (DAP) | netcoredbg --interpreter=vscode |
| Oracle PL/SQL | Oracle'ın DBMS_DEBUG paketi |
Veritabanı panelinden |
İlk oturumunuz
Hata ayıklama yapılandırmaları
Hata ayıklama yapılandırmaları iletişim kutusu, Hata ayıklama panelindeki düğmeden veya Çalıştırma panelinin menüsünden (Hata ayıklama yapılandırmaları…) açılır.
- Türler: Java, Node.js, Python, Go, .NET ve Tarayıcı.
- Modlar: Başlat (programı Yuli başlatır) veya Bağlan (zaten çalışan bir programa bağlanır).
- Kaydedilenler: sizin oluşturduklarınız. Bu proje için önerilenler: Yuli'nin kodunuzda bulduklarıdır.
| Alan | Ne için |
|---|---|
Program, Modül (python -m), Ana sınıf |
Ne çalıştırılacak |
| Argümanlar, Çalışma dizini, Ortam değişkenleri | Nasıl çalıştırılacak |
| Yorumlayıcı, Derleme seçenekleri | Kullanılacak Python veya build flag'ler |
| Yalnızca benim kodum, Girişte dur | Nerede durulacak |
| Host, Port, Süreç kimliği | Neye bağlanılacak |
| URL, Web kökü, Tarayıcı | Tarayıcıda hata ayıklama |
Yuli ne önerir
| Proje | Öneri |
|---|---|
| Python | main.py, app.py veya manage.py (sonuncusu runserver --noreload ile) ve «Python: attach 5678» |
| Go | Bir go.mod varsa «Go: .» |
| .NET | Proje dosyası |
| Node.js | package.json içindeki main |
| Tarayıcı | Proje vite, react-scripts, next, Angular, vue veya svelte kullanıyorsa. URL vite ile 5173, Angular ile 4200, diğerlerinde 3000 portunu kullanır |
Yapılandırmalar deponuzda değil, Yuli'nin her proje için tuttuğu çalışma klasöründeki debug-configs.json dosyasında saklanır.
Bir sürece bağlanma
Bağlan modunda Yuli bilgisayarınızda hata ayıklanabilecek şeyleri arar: --inspect ile başlatılmış Node süreçleri; Python, Go ve .NET süreçleri; JDWP'li JVM'ler ve DevTools'lu tarayıcı sekmeleri. Bir türden hiçbiri yoksa bunu size söyler; örneğin: «--inspect ile dinleyen Node süreci yok.»
Java
- Değişken ağacı, kodun üzerinde satır içi değerler ve okunabilir değerlerle (
Owner{id=3, …}gibi bir nesne,2026-10-15gibi bir tarih, boyutuyla birlikte bir koleksiyon) yerleşik JDWP istemcisi. - Koşullu, sayaçlı, logpoint ve istisna breakpoint'leri.
- Hot swap (
Ctrl+Alt+F10): projenin aracıyla yeniden derler ve değişen sınıfları oturumu yeniden başlatmadan yeniden tanımlar.
İfade değerlendiricisi
Değerlendirme konsolunda, izlenen ifadelerde, breakpoint koşullarında ve logpoint mesajlarında kullanılır.
| Destekler | Desteklemez |
|---|---|
?: || && | ^ & == != < > <= >= instanceof << >> >>> + - * / % |
new |
Tekli + - ! ~ ve tür dönüşümleri |
Atamalar, ++ ve -- |
Üye erişimi, metot çağrıları ve [i] indeksleri |
Lambda'lar |
Metot çağrıları, hata ayıkladığınız JVM'de gerçek kod çalıştırır. Durumu değiştiren metotlardan kaçının.
Breakpoint özellikleri
Breakpoint özellikleri içinde her birinin nasıl davranacağını ayarlarsınız:
- Koşul: bir Java ifadesi; yalnızca doğru olduğunda durur.
- İsabet sayısı: satırdan bu sayıdaki geçişte durur.
- Mesaj: ile Yalnızca kaydet: durmadan konsola yazar.
Bir koşul değerlendirilemezse hata ayıklayıcı onu sessizce yok saymaz: bir kez durur ve nedenini gösterir; örneğin «[koşul] «total > limit» (satır 42) değerlendirilemedi: …».
Node.js ve tarayıcı
- Source map'ler (v3): breakpoint'i
.ts,.tsxdosyanıza veya özgün koda koyarsınız; Yuli onu üretilen koda taşır. Durduğunda yığın yine sizin dosyalarınızı gösterir. - Bağlanma:
--inspectile dinleyen herhangi bir Node sürecine. - Tarayıcı: Yuli, Chrome, Chromium veya Edge'i ayrı bir profille (
--user-data-dir) ve uzaktan hata ayıklama portuyla açar. Oturumlarınızın ve eklentilerinizin bulunduğu normal profilinize dokunulmaz. - Hot swap, source map'li koda uygulanmaz: geliştirme sunucusunun sıcak yeniden yüklemesini kullanın.
Python, Go ve .NET
Üçü de DAP protokolünü kullanır. Python projenin sanal ortamını kullanır (önce VIRTUAL_ENV, ardından python3 veya python). Go, dlv dap başlatabilir veya zaten çalıştırdığınız bir dlv --headless'e bağlanabilir. Düzenleyicide kenar boşluğundaki ▶ ayrıca Python'daki if __name__ == "__main__":, Go'daki func main ve func TestX ile C#'taki static void Main( için hata ayıklama da sunar.
Hata ayıklayıcıyı kurma
Hata ayıklayıcı eksikse Yuli'nin ne yapacağını anlatan «… hata ayıklayıcısı eksik» bildirimi, Kur ve hata ayıkla ve İptal düğmeleriyle birlikte görünür.
Yuli, debugpy'yi pip ile projenin Python ortamına kurar (sistemin Python'unu kullanıyorsanız --user ile):
pip install debugpyYuli, Delve'i sizin Go'nuzla derler ve kendi yönettiği araçlara kurar (Delve hazır ikili dosya yayımlamaz). Delve'in son sürümü daha yeni bir Go gerektiriyorsa sizinkiyle uyumlu en yeni sürümü kullanır.
go install github.com/go-delve/delve/cmd/dlv@latest<runtimes>/delve/bin içine kurulur (Yuli'nin runtime klasörü; bkz. Dil sunucuları ve build).
Yuli, netcoredbg'yi (MIT lisansı) github.com/Samsung/netcoredbg/releases/latest adresinden indirir ve <runtimes>/netcoredbg içine kaydeder.
Windows x64, Linux x64 ve arm64 ile macOS (Apple Silicon'da Rosetta ile çalışan x64 sürümü) için sürümü vardır. Diğer platformlarda Yuli bunun kullanılamadığını bildirir.
Bir oturum başlatmak hiçbir zaman kendiliğinden bir şey kurmaz. İzniniz olmadan hiçbir şey indirilmez veya çalıştırılmaz; kurulum başarısız olursa kaydı aynı bildirimde görünür kalır.
PL/SQL
Yuli, Oracle prosedürlerinde, fonksiyonlarında ve paketlerinde DBMS_DEBUG ile hata ayıklar.
- Hesabın
DEBUG CONNECT SESSIONyetkisine ve nesne üzerindeDEBUG(veyaDEBUG ANY PROCEDURE) yetkisine ihtiyacı vardır. - Yuli nesneyi
COMPILE DEBUGile yeniden derler. - Tuşlar:
F5devam et,F10sonraki satır,F11içine gir veShift+F11dışarı çık.
Kısayollar
| Eylem | Kısayol |
|---|---|
| Son yapılandırmada hata ayıkla | Shift+F9 |
| Devam et | F9 |
| Sonraki satır (step over) | F8 |
| İçine gir, yalnızca sizin kodunuz (step into) | F7 |
| Zorla içine gir | Alt+Shift+F7 |
| Metottan çık | Shift+F8 |
| Değişen sınıfları yeniden yükle (hot swap) | Ctrl+Alt+F10 |
Yapay zekâ ile
Bir test veya bir adım başarısız olduğunda Nedenini yapay zekâya sor düğmesi Hata ayıklama panelinde, test gezgininde ve YZ değişiklikleri doğrulamasında görünür. Düğme bağlamı (hata, yığın, kod) hazırlar ve sohbete bırakır: göndermez; ne soracağınıza siz karar verirsiniz.
Ayrıca bkz. Çalıştırma ve hata ayıklama ve Dil sunucuları ve build.