MATLAB Language
felsökning
Sök…
Syntax
- dbstop i fil på plats om uttryck
parametrar
Parameter | detaljer |
---|---|
fil | Namn på .m fil (utan förlängning), t.ex. fit . Denna parameter är (obligatorisk) om inte särskilda villkorade brytpunktstyper som dbstop if error eller dbstop if naninf . |
plats | Radnummer där brytpunkten ska placeras. Om den angivna raden inte innehåller körbar kod placeras brytpunkten på den första giltiga raden efter den angivna. |
uttryck | Varje uttryck eller kombination därav som utvärderas till ett booleskt värde. Exempel: ind == 1 , nargin < 4 && isdir('Q:\') . |
Arbeta med Breakpoints
Definition
I mjukvaruutveckling är en brytpunkt en avsiktlig stopp eller pausplats i ett program, infört för felsökning.
Mer generellt är en brytpunkt ett sätt att skaffa sig kunskap om ett program under genomförandet. Under avbrottet inspekterar programmeraren testmiljön (allmänna register, minne, loggar, filer etc.) för att ta reda på om programmet fungerar som förväntat. I praktiken består en brytpunkt av ett eller flera villkor som avgör när ett programs körning ska avbrytas.
-Wikipedia
Brytpunkter i MATLAB
Motivering
I MATLAB, när exekveringen pausar vid en brytpunkt, kan variabler som finns i det aktuella arbetsområdet (aka omfång ) eller något av de anropande arbetsytorna, inspekteras (och vanligtvis också ändras).
Typer av brytpunkter
MATLAB tillåter användare att placera två typer av brytpunkter i .m
filer:
- Standard (eller " obegränsade ") brytpunkter (visas med rött) - pausa körning varje gång den markerade linjen nås.
- "Villkorliga" brytpunkter (visas i gult) - pausutförande när den markerade linjen uppnås OCH villkoret som definieras i brytpunkten utvärderas som
true
.
Placera brytpunkter
Båda typerna av brytpunkter kan skapas på flera sätt:
Använd MATLAB Editor GUI genom att högerklicka på den horisontella linjen bredvid radnumret.
Använda kommandot
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
Använda kortkommandon: standardnyckeln för att skapa en standardbrytpunkt i Windows är F12 ; standardknappen för villkorade brytpunkter är inte inställd .
Inaktivera och återaktivera Breakpoints
Inaktivera en brytpunkt för att tillfälligt ignorera den: inaktiverade brytpunkter pausar inte körningen. Att inaktivera en brytpunkt kan göras på flera sätt:
- Högerklicka på den röda / gula breakpointcirkeln> Inaktivera Breakpoint.
- Vänsterklicka på en villkorad (gul) brytpunkt.
- På Editor-fliken> Breakpoints> Enable \ Disable.
Ta bort brytpunkter
Alla brytpunkter finns kvar i en fil tills de tas bort, antingen manuellt eller automatiskt. Breakpoints rensas automatiskt när MATLAB-sessionen avslutas (dvs. att programmet avslutas). Rensa brytpunkter manuellt görs på ett av följande sätt:
Med hjälp av kommandot
dbclear
:dbclear all dbclear in file dbclear in file at location dbclear if condition
Vänsterklicka på en standardbrytpunktsikon eller en inaktiverad villkorad brytpunktsikon.
Högerklicka på valfri brytpunkt> Rensa brytpunkt.
På fliken Editor> Breakpoints> Rensa alla.
I versioner före R2015b av MATLAB använder du kommandot
clear
.
Återuppta avrättningen
När körning är pausad vid en brytpunkt finns det två sätt att fortsätta köra programmet:
Kör den aktuella raden och pausa igen innan nästa rad.
F10 1 i redigeraren,
dbstep
i kommandofönstret, "Steg" i Ribbon> Editor> DEBUG.Kör till nästa breakpoint (om det inte finns fler breakpoints fortsätter exekveringen fram till programmets slut).
F12 1 i redigeraren,
dbcont
i kommandofönstret, "Fortsätt" i Ribbon> Editor> DEBUG.
1 - standard på Windows.
Debugging Java-kod åberopas av MATLAB
Översikt
För att felsöka Java-klasser som anropas under MATLAB-körning är det nödvändigt att utföra två steg:
- Kör MATLAB i JVM-felsökningsläge.
- Bifoga en Java-felsökare till MATLAB-processen.
När MATLAB startas i JVM-felsökningsläge visas följande meddelande i kommandofönstret:
JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.
MATLAB slut
Windows:
Skapa en genväg till den körbara MATLAB ( matlab.exe
) och lägg till -jdb
flaggan i slutet som visas nedan:
När du kör MATLAB med denna genväg kommer JVM-felsökning att vara aktiverad.
Alternativt kan java.opts
filen skapas / uppdateras. Denna fil lagras i "matlab-root \ bin \ arch", där "matlab-root" är MATLAB-installationsdirektivet och "arch" är arkitekturen (t.ex. "win32").
Följande ska läggas till i filen:
-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
Debugger slut
IntelliJ IDEA
För att fästa denna felsökare krävs skapandet av en "fjärrfelsökning" -konfiguration med porten exponerad av MATLAB:
Sedan startas felsökaren:
Om allt fungerar som förväntat visas följande meddelande i konsolen: