Bonjour à tous,
J'aimerais savoir si, lorsque l'on est en mode débugger pendant l'exécution d'un programme (i.e. au prompt on a 'K>>'), il existe une commande pour afficher directement la ligne responsable de l'interruption du programme ?
Bonjour à tous,
J'aimerais savoir si, lorsque l'on est en mode débugger pendant l'exécution d'un programme (i.e. au prompt on a 'K>>'), il existe une commande pour afficher directement la ligne responsable de l'interruption du programme ?
C'est-à-dire ?
Normalement MATLAB ouvre automatiquement l'éditeur avec la petite flèche verte à l'endroit où il s'est arrêté .
Si tu cherches la ligne d'erreur il faut utiliser :
Menu Debug > Stop if Errors/Warnings
Cocher : Always Stop if error
Merci pour l'astuce, je ne connaissait pas le "Always Stop if error", ça à l'air très pratique !
Matlab affiche bien la ligne responsable de l'interruption lorsque le point d'arrêt est défini dans l'éditeur en cliquant dans la marge à côté des numéros de lignes. Par contre ce genre de point d'arrêt disparait quand le programme est lancé depuis un autre fichier, donc je préfère utiliser 'keyboard;'. Mais là il ne se passe rien, quand la fonction s'interrompt j'ai le prompt mais je dois chercher où se trouve la petite flèche verte. J'aimerais savoir s'il existe une fonction Matlab pour que l'éditeur aille afficher l'endroit de mon fichier .m où se trouve la flèche verte.
Désolé de ne pas avoir été plus clair la première fois.
C'est parce que tu utilises KEYBOARD qu'il ne se passe rien.
Si tu utilises le DEBUGGUER il ira toujours au bon endroit.
Les points d'arrêt peuvent par contre disparaitre si tu fais un CLEAR ALL (ce qui est fortement déconseilléRègles de "bonne conduite")
Ou alors je n'ai toujours pas compris![]()
Si si, je pense que tu as bien comprisc'est moi qui faisait mal les choses ! Mon programme commence par:
Bref, c'est en gros tout ce qu'il faut pas faire ! :p je vais changer ce mauvais réflexe, je pense que comme ça les points d'arrêts resteront et je pourrais utiliser le debugger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function main clear all; close all; clc; set_env(); % Mettre en place des paramètres pour l'utilisateur comme la langue, son répertoire... interface_1(); % lancer la GUI
Surtout que faire un CLEAR ALL à la première ligne d'une fonction de sert à rien puisque la fonction à son environnement propre.
Pour s'en persuader rajoute cette ligne juste après la déclaration de la fonction :
il ne te retournera rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part who
effectivement pour un script ça servait à "nettoyer" sauvagement le workspace, mais pour une fonction c'est inutile. merci du conseil![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager