News:
|
|
Hmmm, das ist schon gut, aber nicht ganz das, was ich eigentlich haben will. Am Liebsten hätte ich es so: Sobald sich eine - sagen wir globale - Variable irgendwo ändert während des Programmablaufs, soll ein STOP/BREAK erfolgen und die Stelle aufgerufen werden, wo es geändert wurde. Bei deiner Version muss man ja die Stelle schon festlegen, die Möglichkeit kannte ich leider schon. Dennoch ist das mit dem IntelliSense sehr interessant!
– Eiger 20.12.2011
|
||
Zu Update2: Geht leider nicht, da ich Mixed code habe!
Zu Trick 17: Entweder stehe ich auf dem Schlauch, oder ich bin zu doof, zu verstehen, wie mir das weiterhilft...!? – Eiger 20.12.2011
|
||
Naja ich stell mir das so vor das du deine Variable die du überwachen willst in einem Globalen Kontext (als Wert im Singleton) verfügbar machst. Dann sollte es doch möglich sein, das du ein normalen Haltepunkt verwenden kannst? Zugegeben war das ein Blitzgedanke von mir - Sorry falls es für deinen Anwendungsfall nicht anwendbar sein sollte. Gruß
– Nicolai Schönberg 20.12.2011
|
||
Das Problem ist ja, dass normale Haltepunkte an eine bestimmte Position gebunden sind. Das will ich ja nicht, denn wenn ich wüsste, wo die Variable geändert wird, bräuchte ich ja die Änderungsverfolgung gar nicht... ;-)
– Eiger 20.12.2011
|
||
1 |
Ne - jetzt hast du mich falsch Verstanden :) Wenn du den Wert in ein Singleton steckst und dann in der Codedatei des Singleton ein Haltepunkt beim getter / setter / Property machst dann wird erst einmal angehalten wenn dieser getter / setter / property aufgerufen wird. Wenn du dann wissen willst WO sich das Teil geändert hast nimmst du einfach die Aufrufliste / Callstack (Debuggen => Fenster => Aufrufliste) Gruß
– Nicolai Schönberg 20.12.2011
|
|
Hmmm, ok, das ist wirklich Trick17 ;-)
Also wenn sich nicht noch was Besseres findet, versuche ich das evtl. mal! Generell dachte ich eigentlich, dass es so eine Funktion im VS sicher gibt, und ich die einfach noch nicht kenne. Aber dem ist wohl nicht so. – Eiger 20.12.2011
|
||
So richtig cool find ich die Lösung ehrlich gesagt auch nicht, aber mir fällt momentan nichts besseres ein
– Nicolai Schönberg 20.12.2011
|
Value Tracking helps you determine how a certain incorrect value might have passed to a given point in your program, and where it might be passed next. This helps you investigate possible NullReferenceExceptions, inappropriate behavior and reasons why you get incorrect values.
|
Das ist ja cool! Ich nutze Resharper schon eine weile; Diese Funktion kannte ich bisher nicht. PS: Ja Screenshots gehen nicht, ich verlinke sie immer als link
– Nicolai Schönberg 20.12.2011
|
||
Leider habe ich keinen Resharper zur Verfügung, ausserdem dachte ich, den gibts nicht für C++...
– Eiger 20.12.2011
|
||
|
Den Nutzen vom ersten Vorgehen kann ich nicht nachvollziehen. Wo steht da, dass die eingesetzte Funktion aufgerufen wird, sobald sich eine globale Variable ändert...?
Der Nachtrag geht leider nicht, da ich Mixed code habe... – Eiger 20.12.2011
|
||
Zu 1.: "If you add a function call to the watch window, that function will be called when debugger refreshes the watch values."
2. Schade. Ich fürchte, dass du dann kein Glück hast. – puls200 20.12.2011
|
||
Zu 1. Na ja, die watch values werden ja eigentlich nur refreshed, wenn ich einen step-by-step debug mache. Ich will ja das Programm im debug Modus ausführen und laufen lassen. Das Programm soll nur anhalten, wenn sich die Variable ändert (sprich ein Schreibzugriff darauf stattfindet). Ich befürchte langsam, das geht wohl nicht... Danke dennoch für euere Überlegungen, vielleicht ergibt sich ja noch was.
– Eiger 20.12.2011
|
|
Schade eigentlich.
Nun denn, deine links sind dennoch interessant. Auch wenn vielleicht nicht unbedingt für angesprochene Problematik, weil bis ich das alles richtig aufgesetzt habe, habe ich die Änderung auch via step-by-step debugging gefunden... Aber - wie gesagt - sehr interessant und deshalb für dich - wie auch die anderen "Mitstreiter" +1 ;-) – Eiger 20.12.2011
|