Zoeken…


Syntaxis

  • dbstop in bestand op locatie als expressie

parameters

Parameter Details
het dossier Naam van .m bestand (zonder extensie), bijv. fit . Deze parameter is (vereist) tenzij speciale voorwaardelijke breekpunttypen worden ingesteld, zoals dbstop if error of dbstop if naninf .
plaats Regelnummer waar het breekpunt moet worden geplaatst. Als de opgegeven regel geen uitvoerbare code bevat, wordt het breekpunt op de eerste geldige regel na de opgegeven regel geplaatst.
uitdrukking Elke expressie of combinatie daarvan die resulteert in een booleaanse waarde. Voorbeelden: ind == 1 , nargin < 4 && isdir('Q:\') .

Werken met breekpunten

Definitie

Bij softwareontwikkeling is een breekpunt een opzettelijke stop- of pauzeplaats in een programma, opgezet voor foutopsporingsdoeleinden.

Meer in het algemeen is een breekpunt een middel om kennis te vergaren over een programma tijdens de uitvoering ervan. Tijdens de onderbreking inspecteert het programmeerapparaat de testomgeving (registers voor algemeen gebruik, geheugen, logboeken, bestanden, enz.) Om erachter te komen of het programma naar verwachting functioneert. In de praktijk bestaat een breekpunt uit een of meer voorwaarden die bepalen wanneer de uitvoering van een programma moet worden onderbroken.

Wikipedia

Breekpunten in MATLAB

Motivatie

In MATLAB kunnen, wanneer de uitvoering op een breekpunt pauzeert, variabelen die in de huidige werkruimte (ook wel scope ) of een van de aanroepende werkruimten bestaan, worden geïnspecteerd (en meestal ook worden gewijzigd).

Soorten breekpunten

Met MATLAB kunnen gebruikers twee soorten breekpunten in .m bestanden plaatsen:

  • Standaard (of " onbeperkte ") breekpunten (rood weergegeven) - pauzeer de uitvoering wanneer de gemarkeerde lijn wordt bereikt.
  • "Voorwaardelijke" breekpunten (geel weergegeven) - pauze-uitvoering wanneer de gemarkeerde lijn wordt bereikt EN de in het breekpunt gedefinieerde voorwaarde wordt geëvalueerd als true .

Verschillende breekpuntsymbolen in de GUI

Breekpunten plaatsen

Beide soorten breekpunten kunnen op verschillende manieren worden gemaakt:

  • Gebruik de MATLAB Editor GUI door met de rechtermuisknop op de horizontale lijn naast het regelnummer te klikken.

  • Met behulp van de opdracht 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
    
  • Sneltoetsen gebruiken: de standaardtoets voor het maken van een standaard breekpunt op Windows is F12 ; de standaardsleutel voor voorwaardelijke breekpunten is uitgeschakeld .

Breekpunten uitschakelen en opnieuw inschakelen

Schakel een breekpunt uit om het tijdelijk te negeren: uitgeschakelde breekpunten pauzeren de uitvoering niet. Een breekpunt uitschakelen kan op verschillende manieren:

  • Klik met de rechtermuisknop op de rood / gele breekpuntcirkel> Breekpunt uitschakelen.
  • Klik met de linkermuisknop op een voorwaardelijk (geel) breekpunt.
  • Op het tabblad Editor> Breekpunten> Inschakelen \ Uitschakelen.

Breekpunten verwijderen

Alle breekpunten blijven in een bestand totdat ze worden verwijderd, handmatig of automatisch. Breekpunten worden automatisch gewist bij het beëindigen van de MATLAB-sessie (dwz het programma beëindigen). Breekpunten handmatig wissen gebeurt op een van de volgende manieren:

  • Met behulp van de opdracht dbclear :

    dbclear all
    dbclear in file   
    dbclear in file at location    
    dbclear if condition
    
  • Klik met de linkermuisknop op een standaard breekpuntpictogram of een uitgeschakeld voorwaardelijk breekpuntpictogram.

  • Klik met de rechtermuisknop op een breekpunt> Breekpunt wissen.

  • Op het tabblad Editor> Breekpunten> Alles wissen.

  • In pre-R2015b-versies van MATLAB, met behulp van de opdracht clear .

De uitvoering hervatten

Wanneer de uitvoering op een breekpunt wordt gepauzeerd, zijn er twee manieren om door te gaan met het uitvoeren van het programma:

  • Voer de huidige regel uit en pauzeer opnieuw voor de volgende regel.

    F10 1 in de Editor, dbstep in het opdrachtvenster, "Step" in Ribbon> Editor> DEBUG.

  • Voer uit tot het volgende breekpunt (als er geen breekpunten meer zijn, gaat de uitvoering door tot het einde van het programma).

    F12 1 in de Editor, dbcont in het opdrachtvenster, "Doorgaan" in Lint> Editor> DEBUG.


1 - standaard op Windows.

Debuggen van Java-code aangeroepen door MATLAB

Overzicht

Om Java-klassen die tijdens MATLAB-uitvoering worden aangeroepen, te debuggen, moeten twee stappen worden uitgevoerd:

  1. Voer MATLAB uit in JVM-foutopsporingsmodus.
  2. Koppel een Java-foutopsporingsprogramma aan het MATLAB-proces.

Wanneer MATLAB wordt gestart in JVM-foutopsporingsmodus, verschijnt het volgende bericht in het opdrachtvenster:

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

MATLAB einde

Ramen:

Maak een snelkoppeling naar het uitvoerbare bestand MATLAB ( matlab.exe ) en voeg aan het einde de vlag -jdb toe, zoals hieronder wordt weergegeven:

voer hier de afbeeldingsbeschrijving in

Wanneer MATLAB wordt uitgevoerd met deze snelkoppeling, wordt JVM-foutopsporing ingeschakeld.

Als alternatief kan het java.opts bestand worden gemaakt / bijgewerkt. Dit bestand wordt opgeslagen in "matlab-root \ bin \ arch", waarbij "matlab-root" de MATLAB-installatierichtlijn is en "arch" de architectuur is (bijvoorbeeld "win32").

Het volgende moet aan het bestand worden toegevoegd:

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

Debugger einde

IntelliJ IDEE

Het koppelen van deze debugger vereist het maken van een "remote debugging" -configuratie met de poort blootgesteld door MATLAB:

Stap 1: een foutopsporingsconfiguratie maken

Vervolgens wordt de debugger gestart:

Stap 2: Debugger starten

Als alles werkt zoals verwacht, verschijnt het volgende bericht in de console:

Logoutput als alles werkt



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow