|
core |

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.08.2012, 16:39
Titel: Breakpoints verschwinden
|
 |
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...
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.08.2012, 17:26
Titel:
|
 |
Hallo,
hast du vielleicht irgendwo ein
eingebaut?
Siehe auch zahlreiche Threads zum "clear all".
Grüße,
Harald
|
|
|
core |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.08.2012, 18:38
Titel:
|
 |
Jep, das wars. Ist aber auch gemein, die Seiteneffekte ganz unten in der Hilfe zu erwähnen
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; ?!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.08.2012, 19:21
Titel:
|
 |
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
|
|
|
core |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.08.2012, 12:47
Titel:
|
 |
Harald hat Folgendes geschrieben: |
Diese Breakpoints werden vor dem "clear all" und damit noch nicht gelöscht sein. |
Wie meinen?
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.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 06.08.2012, 11:42
Titel:
|
 |
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
|
|
|
core |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.08.2012, 18:12
Titel:
|
 |
Harald hat Folgendes geschrieben: |
ich kann ja nun nicht wissen, wo dein clear all steht. |
Achso, ich dachte als Forum-Meister kann man das
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|