Documentație / IDE-ul

Depanare

Depanează Java, Node.js, browserul, Python, Go, .NET și PL/SQL din același panou, cu configurații sugerate și depanatoare care se instalează doar cu permisiunea ta.

Yuli depanează fiecare limbaj cu depanatorul său de referință și afișează totul în același panou: stiva, variabilele, consola de evaluare și breakpoint-urile. Ce lipsește se instalează doar dacă îți dai acordul.

Limbaj Depanator Cum îl pornește Yuli
Java și JVM Client JDWP nativ Pornește JVM-ul sau se atașează la el
Node.js Chrome DevTools Protocol (CDP), cu source maps node --inspect sau atașare la un proces
Browser CDP în Chrome, Chromium sau Edge Un profil separat, niciodată al tău
Python debugpy (DAP) python -m debugpy.adapter, cu mediul virtual al proiectului
Go Delve (DAP) dlv dap sau atașare la un dlv --headless care rulează deja
.NET netcoredbg (DAP) netcoredbg --interpreter=vscode
Oracle PL/SQL DBMS_DEBUG de la Oracle Din panoul bazei de date

Prima ta sesiune

0 din 7 gata

Configurații de depanare

Dialogul Configurații de depanare se deschide din butonul panoului Depanare sau din meniul panoului Rulare (Configurații de depanare…).

  • Tipuri: Java, Node.js, Python, Go, .NET și Browser.
  • Moduri: Pornește (Yuli lansează programul) sau Atașează (se conectează la unul care rulează deja).
  • Salvate: cele create de tine. Sugerate pentru acest proiect: cele pe care Yuli le găsește în codul tău.
Câmp Pentru ce
Program, Modul (python -m), Clasă principală Ce se rulează
Argumente, Director de lucru, Variabile de mediu Cum se rulează
Interpretor, Opțiuni de compilare Ce Python sau ce build flags se folosesc
Doar codul meu, Oprește la intrare Unde se oprește
Host, Port, ID de proces La ce se atașează
URL, Rădăcină web, Browser Depanarea în browser

Ce sugerează Yuli

Proiect Sugestie
Python main.py, app.py sau manage.py (acesta cu runserver --noreload) și „Python: attach 5678”
Go „Go: .” dacă există un go.mod
.NET Fișierul de proiect
Node.js main din package.json
Browser Dacă proiectul folosește vite, react-scripts, next, Angular, vue sau svelte. URL-ul folosește portul 5173 cu vite, 4200 cu Angular și 3000 în celelalte cazuri

Configurațiile se salvează în debug-configs.json, în folderul de lucru pe care Yuli îl păstrează pentru fiecare proiect, nu în depozitul tău.

Atașarea la un proces

În modul Atașează, Yuli caută ce se poate depana pe calculatorul tău: procese Node lansate cu --inspect, procese Python, Go și .NET, JVM-uri cu JDWP și file de browser cu DevTools. Dacă nu există niciunul de un anumit tip, îți spune; de exemplu: „Nu există procese Node cu --inspect care ascultă.”

Java

  • Client JDWP nativ, cu arbore de variabile, valori afișate în linie peste cod și valori lizibile (un obiect ca Owner{id=3, …}, o dată ca 2026-10-15, o colecție cu dimensiunea ei).
  • Breakpoint-uri condiționale, cu numărare, logpoint-uri și de excepție.
  • Hot swap (Ctrl+Alt+F10): recompilează cu unealta proiectului și redefinește clasele modificate fără să repornească sesiunea.

Evaluatorul de expresii

Se folosește în consola de evaluare, în expresiile urmărite, în condițiile breakpoint-urilor și în mesajele logpoint-urilor.

Acceptă Nu acceptă
?: || && | ^ & == != < > <= >= instanceof << >> >>> + - * / % new
Unari + - ! ~ și conversii de tip Atribuiri, ++ și --
Acces la membri, apeluri de metode și indici [i] Lambda

Apelurile de metode execută cod real în JVM-ul pe care îl depanezi. Evită metodele care schimbă starea.

Proprietățile breakpoint-ului

În Proprietățile breakpoint-ului setezi cum se comportă fiecare:

  • Condiție: expresie Java; se oprește doar când este adevărată.
  • Atingerea numărul: se oprește la acea trecere prin linie.
  • Doar înregistrează cu Mesaj: scrie în consolă fără să se oprească.

Dacă o condiție nu poate fi evaluată, depanatorul nu o ignoră în tăcere: se oprește o dată și arată motivul, de exemplu „[condiție] „total > limite” (linia 42) nu a putut fi evaluată: …”.

Node.js și browserul

  • Source maps (v3): pui breakpoint-ul în fișierul tău .ts, .tsx sau în codul original, iar Yuli îl mută în codul generat. La oprire, stiva îți arată din nou fișierele tale.
  • Atașare: la orice proces Node care ascultă cu --inspect.
  • Browser: Yuli deschide Chrome, Chromium sau Edge cu un profil separat (--user-data-dir) și portul de depanare la distanță. Profilul tău obișnuit, cu sesiunile și extensiile tale, rămâne neatins.
  • Hot swap nu se aplică pentru codul cu source maps: folosește reîncărcarea la cald a serverului de dezvoltare.

Python, Go și .NET

Toate trei folosesc protocolul DAP. Python folosește mediul virtual al proiectului (întâi VIRTUAL_ENV, apoi python3 sau python). Go poate porni dlv dap sau se poate atașa la un dlv --headless pe care îl ai deja pornit. În editor, ▶ din margine oferă și depanarea pentru if __name__ == "__main__": din Python, func main și func TestX din Go și static void Main( din C#.

Instalarea depanatorului

Dacă lipsește depanatorul, apare „Lipsește depanatorul pentru…”, cu ce urmează să facă Yuli, și butoanele Instalează și depanează și Anulează.

Yuli instalează debugpy cu pip în mediul Python al proiectului (sau cu --user dacă folosești Python-ul sistemului):

bash
pip install debugpy

Pornirea unei sesiuni nu instalează niciodată nimic din proprie inițiativă. Nimic nu se descarcă și nu se execută fără permisiunea ta; dacă instalarea eșuează, jurnalul rămâne vizibil în același avertisment.

PL/SQL

Yuli depanează proceduri, funcții și pachete Oracle cu DBMS_DEBUG.

  • Contul are nevoie de DEBUG CONNECT SESSION și de DEBUG pe obiect (sau DEBUG ANY PROCEDURE).
  • Yuli recompilează obiectul cu COMPILE DEBUG.
  • Taste: F5 continuă, F10 linia următoare, F11 intră și Shift+F11 ieși.

Scurtături

Acțiune Scurtătură
Depanează ultima configurație Shift+F9
Continuă F9
Linia următoare (step over) F8
Intră, doar în codul tău (step into) F7
Forțează intrarea Alt+Shift+F7
Ieși din metodă Shift+F8
Reîncarcă clasele modificate (hot swap) Ctrl+Alt+F10

Cu IA

Când un test sau un pas eșuează, Întreabă IA despre cauză apare în panoul Depanare, în exploratorul de teste și în verificarea din Modificări IA. Butonul pregătește contextul (eroarea, stiva, codul) și îl lasă în chat: nu îl trimite; tu decizi ce să întrebi.

Vezi și Rulare și depanare și Servere de limbaj și build.