Beim Debuggen im Quellcode was verändern ( VC++ 2008 )
-
Hallo und Guten Morgen,
hab mal ne Frage. Ist es beim Visual Studio 2008 noch möglich dass man wie in den alten Versionen während dem Debuggen am Quellcode was ändern kann ? Weil bei mir steigt er immer aus und sagt Das Der Quellcode nicht mehr übereinstimmt wenn ich was verändere.
Ist das nur ne Einstellungssache oder gibts da ein Trick ?
Oder geht es einfach nicht mehr ?Danke schonmal im voraus
MFG
-
Doch, geht schon (mache ich auch oft). Es gibt aber einige Fälle, in denen es nicht klappt. Ich glaube, Variablendeklaration zu ändern/ergänzen, ist nicht so einfach möglich. Und wenn du mehrere Projekte hast, ist es meine ich nicht möglich, ein Projekt zu ändern, dass nicht das Startprojekt ist (oder?). Bin mir da aber auch nicht so sicher...
-
Also ich kann gar nichts verändern. Das mit den Variablendeklarationen ist klar. Das ging ja früher schon nicht
Weder ne Sleep Zeit einfügen noch ein Simples strTmp = ""; schreiben.
Da kommt immer:Diese Quelldatei wurde geändert. Sie stimmt nicht mehr mit der Dateiversion überein, mit der die zu debuggende Anwendung erstellt wurde.

-
Hab es auch mal als Startprojekt festgelegt aber hat auch nichts geändert
-
Aber er versucht, zu kompilieren? Und da geht auch nix schief? Wie gesagt, bei mir klappt's wunderbar...
-
Vielleicht hilft das:
-
Hmm..
bei mir motzt der bei jedem Befehl und bei Sleep(50); kann man sich halt auch net viel verschreiben :). Vllt ist es auch ne Einstellungssache
-
pmb schrieb:
Vllt ist es auch ne Einstellungssache
Deshalb habe ich dir den Link geschickt. Sieh mal nach oben!

EDIT: Und es gab schon viele, die sich gewundert haben, dass "sleep(50)" nicht kompiliert wird...

-
Ah sorry hab grad geschrieben wo du den link geschickt hast

-
Also jetzt kommt die Meldung zumindest nicht mehr. Aber jetzt hab ich das Problem dass er mir die Änderungen nicht übernimmt er springt praktisch drüber wie wenn sie nicht vorhanden währen
-
pmb schrieb:
Also jetzt kommt die Meldung zumindest nicht mehr. Aber jetzt hab ich das Problem dass er mir die Änderungen nicht übernimmt er springt praktisch drüber wie wenn sie nicht vorhanden währen
Sorry, aber das glaube ich nicht. Wenn du eine Zeile "x=0;" umänderst in "x=1;" (und der Debugger steht auch vor oder auf dieser Zeile), dann sollte x doch im Anschluss den Wert 1 haben, oder etwa nicht? Hast du das mal so überprüft oder gehst du nur vom Springen des Debugger-Zeigers aus?
-
Ist aber echt so
Hier mein Beispiel:i = m_strKurve.Find(","); // Jetzt steht in i 6 als Wert drin
Sleep(50); // <- Hier steht der Debuggerund jetzt schreibe ich
i = 1;
und geh mit F10 schrittweise drüber. Danach steht jetzt in i immernoch 6 drin
-
Und nachdem du F10 gedrückt hast, kompiliert er die Änderung und übernimmt sie angeblich?? Das siehst du ja im Ausgabe-Fenster. Was steht da?
-
-------- Bearbeiten und Fortfahren - Erstellen wurde gestartet --------
--------------------- Fertig ----------------------
Aber an dem Wert ändert sich nichts
-
Dann gib den Wert sicherheitshalber mal per OutputDebugString im Ausgabe-Fenster aus. Manchmal spinnt der Debugger auch ein bisschen. Eine eigene Ausgabe ist die sichere Methode, so etwas zu überprüfen.
-
Hat leider nichts gebracht. Steht immernoch das gleiche drin. Das gibts doch nicht. Da ist doch was faul
-
Zeig mal, wie du den Wert ausgibst.
-
i = 1;
strTmp.Format("%i",i);
OutputDebugString(strTmp);