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
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ă ca2026-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,.tsxsau î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):
pip install debugpyYuli compilează și instalează Delve cu Go-ul tău în uneltele pe care le administrează (Delve nu publică binare). Dacă ultima versiune Delve cere un Go mai nou, folosește cea mai recentă versiune compatibilă cu al tău.
go install github.com/go-delve/delve/cmd/dlv@latestSe instalează în <runtimes>/delve/bin (folderul de runtime-uri al lui Yuli; vezi Servere de limbaj și build).
Yuli descarcă netcoredbg (licență MIT) de la github.com/Samsung/netcoredbg/releases/latest și îl păstrează în <runtimes>/netcoredbg.
Există versiuni pentru Windows x64, Linux x64 și arm64 și macOS (cea x64, care pe Apple Silicon rulează prin Rosetta). Pe alte platforme, Yuli te anunță că nu este disponibil.
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 deDEBUGpe obiect (sauDEBUG ANY PROCEDURE). - Yuli recompilează obiectul cu
COMPILE DEBUG. - Taste:
F5continuă,F10linia următoare,F11intră șiShift+F11ieș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.