IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Trouver un point d'arrêt dans une fonction


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut Trouver un point d'arrêt dans une fonction
    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 ?

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    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.

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    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

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Si si, je pense que tu as bien compris c'est moi qui faisait mal les choses ! Mon programme commence par:

    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
    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.

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    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.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    effectivement pour un script ça servait à "nettoyer" sauvagement le workspace, mais pour une fonction c'est inutile. merci du conseil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trouver ID traité dans une fonction
    Par spy74 dans le forum jQuery
    Réponses: 2
    Dernier message: 30/09/2009, 17h30
  2. Réponses: 3
    Dernier message: 03/08/2007, 07h36
  3. Trouver l'erreur dans une fonction
    Par Seth77 dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 16h38
  4. Point d'entrée d'une fonction dans une DLL
    Par Muetdhiver dans le forum MFC
    Réponses: 5
    Dernier message: 15/02/2006, 23h49
  5. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo