MATLAB Language
Debuggen
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.
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:
- Führen Sie MATLAB im JVM-Debugging-Modus aus.
- 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:
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:
Dann wird der Debugger gestartet:
Wenn alles wie erwartet funktioniert, wird die folgende Meldung in der Konsole angezeigt: