Suche…


Syntax

  • dbstop in Datei am Ort des Ausdrucks

Parameter

Parameter Einzelheiten
Datei Name der .m Datei (ohne Erweiterung), zB fit . Dieser Parameter ist (Erforderlich) , sofern nicht besondere bedingte Haltepunkt - Typen wie Einstellung dbstop if error oder dbstop if naninf .
Standort Zeilennummer, an der der Haltepunkt platziert werden soll. Wenn die angegebene Zeile keinen ausführbaren Code enthält, wird der Haltepunkt in der ersten gültigen Zeile nach der angegebenen Zeile eingefügt.
Ausdruck Jeder Ausdruck oder eine Kombination davon, der einen booleschen Wert ergibt. Beispiele: ind == 1 , nargin < 4 && isdir('Q:\') .

Mit Haltepunkten arbeiten

Definition

In der Softwareentwicklung ist ein Haltepunkt eine absichtliche Unterbrechung oder Unterbrechung in einem Programm, die für Debugging-Zwecke eingerichtet wurde.

Im Allgemeinen ist ein Haltepunkt ein Mittel, um während seiner Ausführung Wissen über ein Programm zu erlangen. Während der Unterbrechung überprüft der Programmierer die Testumgebung (Universalregister, Speicher, Protokolle, Dateien usw.), um herauszufinden, ob das Programm erwartungsgemäß funktioniert. In der Praxis besteht ein Haltepunkt aus einer oder mehreren Bedingungen, die bestimmen, wann die Programmausführung unterbrochen werden soll.

-Wikipedia

Haltepunkte in MATLAB

Motivation

Wenn in MATLAB die Ausführung an einem Haltepunkt angehalten wird, können Variablen, die im aktuellen Arbeitsbereich (auch als Bereich bezeichnet ) oder in einem der aufrufenden Arbeitsbereiche vorhanden sind, geprüft (und normalerweise auch geändert) werden.

Arten von Haltepunkten

MATLAB ermöglicht Benutzern das Platzieren von zwei Arten von Haltepunkten in .m Dateien:

  • Standard-Haltepunkte (oder " uneingeschränkt ") (rot dargestellt) - Die Ausführung wird angehalten, wenn die markierte Linie erreicht ist.
  • "Bedingte" Haltepunkte (gelb dargestellt) - Pausieren Sie die Ausführung, wenn die markierte Linie erreicht wird UND die im Haltepunkt definierte Bedingung wird als true bewertet.

Unterschiedliche Haltepunktsymbole in der GUI

Haltepunkte setzen

Beide Arten von Haltepunkten können auf verschiedene Arten erstellt werden:

  • Verwenden Sie die MATLAB Editor-Benutzeroberfläche, indem Sie mit der rechten Maustaste auf die horizontale Linie neben der Zeilennummer klicken.

  • Verwenden des 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
    
  • Verwenden von Tastenkombinationen: Die Standardtaste zum Erstellen eines Standardhaltepunkts unter Windows ist F12 . Der Standardschlüssel für bedingte Haltepunkte ist nicht festgelegt .

Deaktivieren und erneutes Aktivieren von Haltepunkten

Deaktivieren Sie einen Haltepunkt, um ihn vorübergehend zu ignorieren: Deaktivierte Haltepunkte halten die Ausführung nicht an. Das Deaktivieren eines Haltepunkts kann auf verschiedene Arten erfolgen:

  • Klicken Sie mit der rechten Maustaste auf den roten / gelben Haltepunktkreis> Haltepunkt deaktivieren.
  • Klicken Sie mit der linken Maustaste auf einen bedingten (gelben) Haltepunkt.
  • Auf der Registerkarte Editor> Haltepunkte> Aktivieren \ Deaktivieren.

Haltepunkte entfernen

Alle Haltepunkte bleiben in einer Datei, bis sie manuell oder automatisch entfernt werden. Haltepunkte werden automatisch gelöscht , wenn die MATLAB-Sitzung beendet wird (dh das Programm beendet wird). Das manuelle Löschen von Haltepunkten erfolgt auf eine der folgenden Arten:

  • Verwenden des dbclear :

    dbclear all
    dbclear in file   
    dbclear in file at location    
    dbclear if condition
    
  • Klicken Sie mit der linken Maustaste auf ein Standard-Haltepunktsymbol oder auf ein deaktiviertes Symbol für den bedingten Haltepunkt.

  • Klicken Sie mit der rechten Maustaste auf einen beliebigen Haltepunkt> Haltepunkt löschen.

  • Auf der Registerkarte Editor> Haltepunkte> Alle löschen.

  • Verwenden Sie in Versionen vor MATRAB R2015b den Befehl clear .

Wiederaufnahme der Ausführung

Wenn die Ausführung an einem Haltepunkt angehalten wird, gibt es zwei Möglichkeiten, um die Ausführung des Programms fortzusetzen:

  • Führen Sie die aktuelle Zeile aus und pausieren Sie vor der nächsten Zeile erneut.

    F10 1 im Editor, dbstep im Befehlsfenster, "Schritt" in Multifunktionsleiste> Editor> DEBUG.

  • Ausführung bis zum nächsten Haltepunkt (wenn keine Haltepunkte mehr vorhanden sind, wird die Ausführung bis zum Ende des Programms fortgesetzt).

    F12 1 im Editor, dbcont im Befehlsfenster, "Weiter" in Multifunktionsleiste> Editor> DEBUG.


1 - Standard unter Windows.

Debuggen von Java-Code, der von MATLAB aufgerufen wird

Überblick

Zum Debuggen von Java-Klassen, die während der MATLAB-Ausführung aufgerufen werden, müssen zwei Schritte ausgeführt werden:

  1. Führen Sie MATLAB im JVM-Debugging-Modus aus.
  2. Hängen Sie einen Java-Debugger an den MATLAB-Prozess an.

Wenn MATLAB im JVM-Debugging-Modus gestartet wird, wird die folgende Meldung im Befehlsfenster angezeigt:

JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.

MATLAB Ende

Windows:

Erstellen Sie eine Verknüpfung zur MATLAB- matlab.exe ( matlab.exe ), und fügen -jdb am Ende das Flag matlab.exe hinzu, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie MATLAB mit dieser Verknüpfung ausführen, wird JVM-Debugging aktiviert.

Alternativ kann die Datei java.opts erstellt / aktualisiert werden. Diese Datei wird in "matlab-root \ bin \ arch" gespeichert, wobei "matlab-root" die MATLAB-Installationsanweisung und "arch" die Architektur ist (z. B. "win32").

Folgendes sollte in die Datei eingefügt werden:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n

Debugger-Ende

IntelliJ IDEA

Das Anhängen dieses Debugger erfordert die Erstellung einer "Remote-Debugging" -Konfiguration mit dem von MATLAB bereitgestellten Port:

Schritt 1: Erstellen einer Debug-Konfiguration

Dann wird der Debugger gestartet:

Schritt 2: Starten des Debuggers

Wenn alles wie erwartet funktioniert, wird die folgende Meldung in der Konsole angezeigt:

Ausgabe protokollieren, wenn alles funktioniert



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow