Documentation / L’IDE

Débogage

Déboguez Java, Node.js, le navigateur, Python, Go, .NET et PL/SQL depuis un même panneau, avec des configurations suggérées et des débogueurs installés uniquement avec votre autorisation.

Yuli débogue chaque langage avec son débogueur de référence et affiche tout dans le même panneau : pile, variables, console d’évaluation et points d’arrêt. Ce qui manque n’est installé que si vous l’autorisez.

Langage Débogueur Comment Yuli le lance
Java et JVM Client JDWP natif Démarre la JVM ou s’y attache
Node.js Chrome DevTools Protocol (CDP), avec source maps node --inspect ou attachement à un processus
Navigateur CDP sur Chrome, Chromium ou Edge Un profil séparé, jamais le vôtre
Python debugpy (DAP) python -m debugpy.adapter, avec l’environnement virtuel du projet
Go Delve (DAP) dlv dap, ou attachement à un dlv --headless en cours d’exécution
.NET netcoredbg (DAP) netcoredbg --interpreter=vscode
Oracle PL/SQL DBMS_DEBUG d’Oracle Depuis le panneau de base de données

Votre première session

0 sur 7 faits

Configurations de débogage

La boîte de dialogue Configurations de débogage s’ouvre depuis le bouton du panneau Débogage ou depuis le menu du panneau Exécution (Configurations de débogage…).

  • Types : Java, Node.js, Python, Go, .NET et Navigateur.
  • Modes : Lancer (Yuli démarre le programme) ou Attacher (il se connecte à un programme déjà en cours d’exécution).
  • Enregistrées : celles que vous avez créées. Suggérées pour ce projet : celles que Yuli trouve dans votre code.
Champ Rôle
Programme, Module (python -m), Classe principale Ce qui est exécuté
Arguments, Répertoire de travail, Variables d’environnement Comment c’est exécuté
Interpréteur, Options de compilation Le Python ou les build flags à utiliser
Seulement mon code, S’arrêter à l’entrée Où l’exécution s’arrête
Hôte, Port, ID de processus À quoi s’attacher
URL, Racine web, Navigateur Débogage dans le navigateur

Ce que Yuli suggère

Projet Suggestion
Python main.py, app.py ou manage.py (celui-ci avec runserver --noreload), et « Python: attach 5678 »
Go « Go: . » s’il existe un go.mod
.NET Le fichier de projet
Node.js Le main du package.json
Navigateur Si le projet utilise vite, react-scripts, next, Angular, vue ou svelte. L’URL utilise le port 5173 avec vite, 4200 avec Angular et 3000 dans les autres cas

Les configurations sont enregistrées dans debug-configs.json, dans le dossier de travail que Yuli tient pour chaque projet, et non dans votre dépôt.

S’attacher à un processus

En mode Attacher, Yuli recherche ce qui peut être débogué sur votre machine : processus Node lancés avec --inspect, processus Python, Go et .NET, JVM avec JDWP et onglets de navigateur avec DevTools. S’il n’y en a aucun d’un type donné, il vous le dit, par exemple : « Aucun processus Node avec --inspect en écoute. »

Java

  • Client JDWP natif, avec arbre des variables, valeurs en ligne sur le code et valeurs lisibles (un objet comme Owner{id=3, …}, une date comme 2026-10-15, une collection avec sa taille).
  • Points d’arrêt conditionnels, par nombre de passages, logpoints et sur exception.
  • Hot swap (Ctrl+Alt+F10) : recompile avec l’outil du projet et redéfinit les classes modifiées sans redémarrer la session.

L’évaluateur d’expressions

Il sert dans la console d’évaluation, les expressions surveillées, les conditions des points d’arrêt et les messages des logpoints.

Pris en charge Non pris en charge
?: || && | ^ & == != < > <= >= instanceof << >> >>> + - * / % new
Opérateurs unaires + - ! ~ et conversions de type Affectations, ++ et --
Accès aux membres, appels de méthodes et index [i] Lambdas

Les appels de méthodes exécutent du vrai code dans la JVM que vous déboguez. Évitez les méthodes qui modifient l’état.

Propriétés du point d’arrêt

Dans Propriétés du point d’arrêt, vous réglez le comportement de chacun :

  • Condition : expression Java ; l’exécution ne s’arrête que lorsqu’elle est vraie.
  • Numéro de passage : s’arrête à ce passage sur la ligne.
  • Journaliser seulement avec Message : écrit dans la console sans s’arrêter.

Si une condition ne peut pas être évaluée, le débogueur ne l’ignore pas en silence : il s’arrête une fois et affiche la raison, par exemple « [condition] « total > limite » (ligne 42) n’a pas pu être évaluée : … ».

Node.js et le navigateur

  • Source maps (v3) : vous placez le point d’arrêt dans votre .ts, votre .tsx ou le code d’origine, et Yuli le reporte sur le code généré. À l’arrêt, la pile affiche de nouveau vos fichiers.
  • Attacher : à n’importe quel processus Node qui écoute avec --inspect.
  • Navigateur : Yuli ouvre Chrome, Chromium ou Edge avec un profil séparé (--user-data-dir) et le port de débogage distant. Votre profil habituel, avec vos sessions et vos extensions, n’est pas touché.
  • Le hot swap ne s’applique pas au code avec source maps : utilisez le rechargement à chaud du serveur de développement.

Python, Go et .NET

Tous trois utilisent le protocole DAP. Python utilise l’environnement virtuel du projet (VIRTUAL_ENV d’abord, puis python3 ou python). Go peut lancer dlv dap ou s’attacher à un dlv --headless déjà en cours d’exécution. Dans l’éditeur, le ▶ de la marge propose aussi de déboguer le if __name__ == "__main__": de Python, func main et func TestX de Go et le static void Main( de C#.

Installer le débogueur

S’il manque le débogueur, l’avertissement « Il manque le débogueur de… » apparaît avec ce que Yuli va faire, et les boutons Installer et déboguer et Annuler.

Yuli installe debugpy avec pip dans l’environnement Python du projet (ou avec --user si vous utilisez le Python du système) :

bash
pip install debugpy

Démarrer une session n’installe jamais rien de lui-même. Rien n’est téléchargé ni exécuté sans votre autorisation ; si l’installation échoue, le journal reste visible dans le même avertissement.

PL/SQL

Yuli débogue les procédures, fonctions et packages Oracle avec DBMS_DEBUG.

  • Le compte a besoin de DEBUG CONNECT SESSION et de DEBUG sur l’objet (ou de DEBUG ANY PROCEDURE).
  • Yuli recompile l’objet avec COMPILE DEBUG.
  • Touches : F5 continuer, F10 ligne suivante, F11 entrer et Shift+F11 sortir.

Raccourcis

Action Raccourci
Déboguer la dernière configuration Shift+F9
Continuer F9
Ligne suivante (step over) F8
Entrer, uniquement dans votre code (step into) F7
Forcer l’entrée Alt+Shift+F7
Sortir de la méthode Shift+F8
Recharger les classes modifiées (hot swap) Ctrl+Alt+F10

Avec l’IA

Lorsqu’un test ou une étape échoue, Demander la cause à l’IA apparaît dans le panneau Débogage, dans l’explorateur de tests et dans la vérification des Modifications IA. Le bouton prépare le contexte (l’erreur, la pile, le code) et le dépose dans le chat : il ne l’envoie pas ; c’est vous qui décidez quoi demander.

Voir aussi Exécuter et déboguer et Serveurs de langage et build.