MATLAB Language
Debugowanie
Szukaj…
Składnia
- dbstop w pliku w lokalizacji, jeśli wyrażenie
Parametry
Parametr | Detale |
---|---|
plik | Nazwa pliku .m (bez rozszerzenia), np. fit . Ten parametr jest (wymagany), chyba że ustawia się specjalne typy warunkowych punktów przerwania, takich jak dbstop if error lub dbstop if naninf . |
Lokalizacja | Numer linii, w której należy umieścić punkt przerwania. Jeśli określony wiersz nie zawiera kodu uruchamialnego, punkt przerwania zostanie umieszczony w pierwszym prawidłowym wierszu po określonym. |
wyrażenie | Wszelkie wyrażenia lub ich kombinacje, które dają w wyniku wartość logiczną. Przykłady: ind == 1 , nargin < 4 && isdir('Q:\') . |
Praca z punktami przerwania
Definicja
W rozwoju oprogramowania punkt przerwania to celowe zatrzymanie lub pauzowanie w programie, wprowadzone w celu debugowania.
Mówiąc bardziej ogólnie, punkt przerwania jest sposobem na zdobycie wiedzy o programie podczas jego wykonywania. Podczas przerwy programista sprawdza środowisko testowe (rejestry ogólnego przeznaczenia, pamięć, dzienniki, pliki itp.), Aby dowiedzieć się, czy program działa zgodnie z oczekiwaniami. W praktyce punkt przerwania składa się z jednego lub więcej warunków, które określają, kiedy należy przerwać wykonywanie programu.
-Wikipedia
Punkty przerwania w MATLAB
Motywacja
W MATLAB, gdy wykonanie zatrzymuje się w punkcie przerwania, zmienne istniejące w bieżącym obszarze roboczym (inaczej zakres ) lub w dowolnym z wywołujących obszarów roboczych mogą być sprawdzane (i zwykle również modyfikowane).
Rodzaje punktów przerwania
MATLAB pozwala użytkownikom umieszczać dwa typy punktów przerwania w plikach .m
:
- Standardowe (lub „ nieograniczone ”) punkty przerwania (pokazane na czerwono) - wstrzymaj wykonywanie, gdy osiągnięta zostanie zaznaczona linia.
- „Warunkowe” punkty przerwania (pokazane na żółto) - wstrzymaj wykonywanie, gdy osiągnięta zostanie zaznaczona linia ORAZ warunek zdefiniowany w punkcie przerwania zostanie oceniony jako
true
.
Umieszczanie punktów przerwania
Oba typy punktów przerwania można utworzyć na kilka sposobów:
Używając GUI edytora MATLAB, klikając prawym przyciskiem myszy poziomą linię obok numeru linii.
Za pomocą komendy
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
Korzystanie ze skrótów klawiaturowych: domyślny klawisz do tworzenia standardowego punktu przerwania w systemie Windows to F12 ; domyślny klucz warunkowych punktów przerwania nie jest ustawiony .
Wyłączanie i ponowne włączanie punktów przerwania
Wyłącz punkt przerwania, aby tymczasowo go zignorować: wyłączone punkty przerwania nie wstrzymują wykonania. Wyłączenie punktu przerwania można wykonać na kilka sposobów:
- Kliknij prawym przyciskiem myszy czerwone / żółte kółko punktu przerwania> Wyłącz punkt przerwania.
- Kliknij lewym przyciskiem myszy na warunkowy (żółty) punkt przerwania.
- Na karcie Edytor> Punkty przerwania> Włącz \ Wyłącz.
Usuwanie punktów przerwania
Wszystkie punkty przerwania pozostają w pliku, dopóki nie zostaną usunięte, ręcznie lub automatycznie. Punkty przerwania są usuwane automatycznie po zakończeniu sesji MATLAB (tj. Zakończeniu programu). Ręczne usuwanie punktów przerwania odbywa się na jeden z następujących sposobów:
Za pomocą komendy
dbclear
:dbclear all dbclear in file dbclear in file at location dbclear if condition
Kliknięcie lewym przyciskiem myszy standardowej ikony punktu przerwania lub wyłączonej ikony warunkowego punktu przerwania.
Kliknij prawym przyciskiem myszy dowolny punkt przerwania> Wyczyść punkt przerwania.
Na karcie Edytor> Punkty przerwania> Wyczyść wszystko.
W wersjach MATLAB wcześniejszych niż R2015b za pomocą polecenia
clear
.
Wznawianie wykonywania
Gdy wykonywanie jest wstrzymane w punkcie przerwania, istnieją dwa sposoby kontynuowania wykonywania programu:
Wykonaj bieżącą linię i ponownie wstrzymaj przed następną linią.
F10 1 w Edytorze,
dbstep
w oknie poleceń, „Krok” na Wstążce> Edytor> DEBUG.Wykonaj do następnego punktu przerwania (jeśli nie ma już punktów przerwania, wykonywanie będzie kontynuowane do końca programu).
F12 1 w Edytorze,
dbcont
w oknie poleceń, „Kontynuuj” na Wstążce> Edytor> DEBUG.
1 - domyślnie w systemie Windows.
Debugowanie kodu Java wywołanego przez MATLAB
Przegląd
W celu debugowania klas Java, które są wywoływane podczas wykonywania MATLAB, należy wykonać dwa kroki:
- Uruchom MATLAB w trybie debugowania JVM.
- Dołącz debuger Java do procesu MATLAB.
Gdy MATLAB jest uruchamiany w trybie debugowania JVM, w oknie poleceń pojawia się następujący komunikat:
JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.
Koniec MATLAB
Windows:
Utwórz skrót do pliku wykonywalnego MATLAB ( matlab.exe
) i dodaj flagę -jdb
na końcu, jak pokazano poniżej:
Podczas uruchamiania MATLAB za pomocą tego skrótu zostanie włączone debugowanie JVM.
Alternatywnie można utworzyć / zaktualizować plik java.opts
. Ten plik jest przechowywany w „matlab-root \ bin \ arch”, gdzie „matlab-root” to bezpośredni przewodnik instalacji MATLAB, a „arch” to architektura (np. „Win32”).
W pliku należy dodać:
-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
Koniec debugowania
IntelliJ IDEA
Dołączenie tego debugera wymaga utworzenia konfiguracji „debugowania zdalnego” z portem ujawnionym przez MATLAB:
Następnie uruchamiany jest debugger:
Jeśli wszystko działa zgodnie z oczekiwaniami, w konsoli pojawi się następujący komunikat: