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 .

Olika breakpoint-symboler i GUI

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:

  1. Kör MATLAB i JVM-felsökningsläge.
  2. 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:

ange bildbeskrivning här

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:

Steg 1: Skapa en felsökningskonfiguration

Sedan startas felsökaren:

Steg 2: Starta felsökningen

Om allt fungerar som förväntat visas följande meddelande i konsolen:

Logga ut när allt fungerar



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow