MATLAB Language
Le débogage
Recherche…
Syntaxe
- dbstop dans le fichier à l'emplacement si expression
Paramètres
Paramètre | Détails |
---|---|
fichier | Nom du fichier .m (sans extension), par exemple fit . Ce paramètre est (obligatoire) sauf si vous définissez des types de points d'arrêt conditionnels spéciaux tels que dbstop if error ou dbstop if naninf . |
emplacement | Numéro de ligne où le point d'arrêt doit être placé. Si la ligne spécifiée ne contient pas de code exécutable, le point d'arrêt sera placé sur la première ligne valide après celle spécifiée. |
expression | Toute expression ou combinaison de celles-ci qui donne une valeur booléenne. Exemples: ind == 1 , nargin < 4 && isdir('Q:\') . |
Travailler avec des points d'arrêt
Définition
En développement logiciel, un point d'arrêt est un point d'arrêt ou de pause intentionnel dans un programme, mis en place à des fins de débogage.
Plus généralement, un point d'arrêt est un moyen d'acquérir des connaissances sur un programme pendant son exécution. Pendant l'interruption, le programmeur inspecte l'environnement de test (registres généraux, mémoire, journaux, fichiers, etc.) pour savoir si le programme fonctionne comme prévu. En pratique, un point d'arrêt consiste en une ou plusieurs conditions qui déterminent à quel moment l'exécution d'un programme doit être interrompue.
-Wikipédia
Points d'arrêt dans MATLAB
Motivation
Dans MATLAB, lorsque l'exécution s'interrompt à un point d'arrêt, les variables existant dans l'espace de travail actuel (ou portée ) ou l'un des espaces de travail appelants peuvent être inspectés (et généralement modifiés).
Types de points d'arrêt
MATLAB permet aux utilisateurs de placer deux types de points d'arrêt dans les fichiers .m
:
- Points d' arrêt standard (ou " illimités ") (affichés en rouge) - suspendre l'exécution à chaque fois que la ligne marquée est atteinte.
- Points d'arrêt "conditionnels" (affichés en jaune) - interrompre l'exécution à chaque fois que la ligne marquée est atteinte ET que la condition définie dans le point d'arrêt est évaluée comme
true
.
Placer les points d'arrêt
Les deux types de points d'arrêt peuvent être créés de plusieurs manières:
En utilisant l'interface graphique de l'éditeur MATLAB, en cliquant avec le bouton droit sur la ligne horizontale située à côté du numéro de ligne.
En utilisant la commande
dbstop
:% Create an unrestricted breakpoint: dbstop in file at location % Create a conditional breakpoint: dbstop in file at location if expression % Examples and special cases: dbstop in fit at 99 % Standard unrestricted breakpoint. dbstop in fit at 99 if nargin==3 % Standard conditional breakpoint. dbstop if error % This special type of breakpoint is not limited to a specific file, and % will trigger *whenever* an error is encountered in "debuggable" code. dbstop in file % This will create an unrestricted breakpoint on the first executable line % of "file". dbstop if naninf % This special breakpoint will trigger whenever a computation result % contains either a NaN (indicates a division by 0) or an Inf
Utilisation des raccourcis clavier: la clé par défaut pour créer un point d'arrêt standard sous Windows est F12 ; la clé par défaut pour les points d'arrêt conditionnels n'est pas définie .
Désactivation et réactivation des points d'arrêt
Désactiver un point d'arrêt pour l'ignorer temporairement: les points d'arrêt désactivés ne suspendent pas l'exécution. La désactivation d'un point d'arrêt peut se faire de plusieurs manières:
- Faites un clic droit sur le cercle rouge / jaune du point d'arrêt> Désactiver le point d'arrêt.
- Clic gauche sur un point d'arrêt conditionnel (jaune).
- Dans l'onglet Editeur> Points d'arrêt> Activer \ Désactiver.
Suppression des points d'arrêt
Tous les points d'arrêt restent dans un fichier jusqu'à leur suppression, manuellement ou automatiquement. Les points d'arrêt sont effacés automatiquement à la fin de la session MATLAB (c'est-à-dire la fin du programme). La suppression manuelle des points d'arrêt se fait de l'une des manières suivantes:
En utilisant la commande
dbclear
:dbclear all dbclear in file dbclear in file at location dbclear if condition
Clic gauche sur une icône de point d'arrêt standard ou une icône de point d'arrêt conditionnel désactivé.
Clic droit sur n'importe quel point d'arrêt> Effacer le point d'arrêt.
Dans l'onglet Editeur> Points d'arrêt> Effacer tout.
Dans les versions antérieures à R2015b de MATLAB, utilisez la commande
clear
.
Reprise de l'exécution
Lorsque l'exécution est suspendue à un point d'arrêt, il existe deux manières de continuer à exécuter le programme:
Exécutez la ligne en cours et faites une nouvelle pause avant la ligne suivante.
F10 1 dans l'éditeur,
dbstep
dans la fenêtre de commande, "Step" dans le ruban> Editor> DEBUG.Exécutez jusqu'au prochain point d'arrêt (s'il n'y a plus de points d'arrêt, l'exécution se poursuit jusqu'à la fin du programme).
F12 1 dans l'éditeur,
dbcont
dans la fenêtre de commande, "Continuer" dans le ruban> éditeur> DEBUG.
1 - par défaut sous Windows.
Débogage du code Java appelé par MATLAB
Vue d'ensemble
Pour déboguer les classes Java appelées lors de l'exécution de MATLAB, il est nécessaire d'effectuer deux étapes:
- Exécutez MATLAB en mode de débogage JVM.
- Attachez un débogueur Java au processus MATLAB.
Lorsque MATLAB est démarré en mode de débogage JVM, le message suivant apparaît dans la fenêtre de commande:
JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.
MATLAB fin
Les fenêtres:
Créez un raccourci vers l'exécutable MATLAB ( matlab.exe
) et ajoutez l'indicateur -jdb
à la fin, comme indiqué ci-dessous:
Lors de l'exécution de MATLAB à l'aide de ce raccourci, le débogage JVM sera activé.
java.opts
fichier java.opts
peut également être créé / mis à jour. Ce fichier est stocké dans "matlab-root \ bin \ arch", où "matlab-root" est le directoy d'installation de MATLAB et "arch" est l'architecture (par exemple "win32").
Les éléments suivants doivent être ajoutés dans le fichier:
-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
Fin du débogueur
IntelliJ IDEA
La connexion de ce débogueur nécessite la création d'une configuration de "débogage distant" avec le port exposé par MATLAB:
Ensuite, le débogueur est démarré:
Si tout fonctionne comme prévu, le message suivant apparaîtra dans la console: