WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Breakpoints verschwinden

 

core
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 07.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2012, 16:39     Titel: Breakpoints verschwinden
  Antworten mit Zitat      
Hallo,

habe gerade ein merkwürdiges Problem. Ich setze einen Breakpoint in einer Funktion, die ich aus einem Skript aufrufe und während der Ausführung verschwindet dieser plötzlich und wird nicht mehr angesprungen.
Erst wenn ich an der äußersten Stelle (also im Skript selbst) einen setze und per Step in in die Funktion gehe, kann ich dann mit der Ausführung weiter machen und alle "inneren" Breakpoints werden wie gehabt angesprungen.
Kann das am Cell Mode liegen? Sonst hab ich in letzter Zeit eigentlich nichts geändert...
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2012, 17:26     Titel:
  Antworten mit Zitat      
Hallo,

hast du vielleicht irgendwo ein
Code:

eingebaut?

Siehe auch zahlreiche Threads zum "clear all".

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
core
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 07.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2012, 18:38     Titel:
  Antworten mit Zitat      
Jep, das wars. Ist aber auch gemein, die Seiteneffekte ganz unten in der Hilfe zu erwähnen Sad
Nur erklärt das immer noch nicht so ganz, wieso breakpoints im Skript selbst dann noch funktionieren?!
D.h. wenn ich auch noch globale Variablen löschen möchte, geht es nur mit clear; clear global; ?!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2012, 19:21     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ist aber auch gemein, die Seiteneffekte ganz unten in der Hilfe zu erwähnen

Wenn man "clear all" statt "clear" verwendet, sollte man sich schon über die Konsequenzen bewusst sein. Der Effekt wird dort beschrieben, wo man es erwarten würde, nämlich in der Tabelle der keywords.

Zitat:
wieso breakpoints im Skript selbst dann noch funktionieren?!

Diese Breakpoints werden vor dem "clear all" und damit noch nicht gelöscht sein.

Zitat:
wenn ich auch noch globale Variablen löschen möchte, geht es nur mit clear; clear global;

Ja, ist ja auch eindeutig aus der Doku zu entnehmen. clear bezieht sich nur auf den momentanen Workspace.
Im übrigen sollten globale Variablen nach Möglichkeit vermieden werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
core
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 07.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2012, 12:47     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Diese Breakpoints werden vor dem "clear all" und damit noch nicht gelöscht sein.


Wie meinen? Smile
Ich setze doch einen Breakpoint im Skript genau wie in einer Function auch vor der Ausführung und wenn das clear all in der ersten Zeile des Skripts steht, müsste er doch alle Breakpoints löschen?!

Zitat:
Im übrigen sollten globale Variablen nach Möglichkeit vermieden werden.


Das versuche ich auch, so gut es geht. Nur wenn man das ganze Programm über mehrere Berechnungen auf denselben Daten durchführt und diese Berechnungen auch noch in besser wartbare Subroutinen zerlegt, die dann selbst wieder Subroutinen haben können, übergibt man diese eigentlich globalen Daten in jeder Funktion und manchmal auch durch ganze Funktionszweige weiter. Ist natürlich durch den Übergabemechanismus von Matlab nicht besonders teuer, stilistisch hochklassig, sieht es aber auch nicht aus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2012, 11:42     Titel:
  Antworten mit Zitat      
Hallo,

ich kann ja nun nicht wissen, wo dein clear all steht.
In Funktionen ist clear all meines Erachtens vollkommen unsinnig, da man ja die Eingabeargumente verliert. Und wenn es keine Eingabeargumente gibt, gibt es überhaupt keine Variablen, die man löschen könnte.

Bei einem clear all am Anfang vermute ich folgenden Ablauf:
1. Skript wird in Speicher geladen (mit Breakpoint)
2. clear all --> Alle Breakpoints werden entfernt. Im Speicher befindet sich aber nach wie vor das Skript mit dem Breakpoint.
3. Breakpoints im Skript werden erreicht / Funktionen werden aufgerufen, in denen nun keine Breakpoints mehr sind.

Wenn man jedoch Breakpoints setzt und diese nicht zu entfernen beabsichtigt, ist die Lösung jedoch so oder so sehr einfach: kein "clear all"!

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
core
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 07.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2012, 18:12     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
ich kann ja nun nicht wissen, wo dein clear all steht.


Achso, ich dachte als Forum-Meister kann man das Very Happy

Harald hat Folgendes geschrieben:
Bei einem clear all am Anfang vermute ich folgenden Ablauf:
1. Skript wird in Speicher geladen (mit Breakpoint)
2. clear all --> Alle Breakpoints werden entfernt. Im Speicher befindet sich aber nach wie vor das Skript mit dem Breakpoint.
3. Breakpoints im Skript werden erreicht / Funktionen werden aufgerufen, in denen nun keine Breakpoints mehr sind.


Klingt auf jeden Fall logisch.

Harald hat Folgendes geschrieben:
Wenn man jedoch Breakpoints setzt und diese nicht zu entfernen beabsichtigt, ist die Lösung jedoch so oder so sehr einfach: kein "clear all"!


Ist auch schon längst umgesetzt. Verwundert hat mich das obige Verhalten trotzdem Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.