Der Debugger von VS 2005



  • Hallo,

    ich hab mir kürzlich VS 2005 professional installiert. Jetzt gibt es ja dort die Möglichkeit eine Debug Variante meiner Anwendung zu compilieren. Wie benutze ich den diesen Debugger? Kann mir jemand vieleicht einen Link zu einem Quickstart Guide oder ähnlichem sagen, so daß ich zumindest mal die Grundfunktionen ausprobieren kann. Also irgendwas wo ich mich schon nach kurzer Zeit brauchbare Ergebnisse sehe. Danke schon mal.



  • F10 drücken?
    Und dann schauen, was es im Debug-Menü alles so zu sehen gibt...



  • Du kannst an beliebiger Stelle im Code Haltepunkte setzen (F9), an denen die Ausführung dann anhält (Datenhaltepunkte sind auch manchmal wichtig). Mit F10/F11 kannst du schrittweise (Zeile für Zeile) mit der Ausführung fortfahren.

    Variableninhalte kannst du einfach per Tooltip mit der Maus oder auch im Überwachungsfenster überprüfen (und dort auch zur Laufzeit verändern). Ein guter Tipp ist: wenn du im Überwachungsfenster einen Zeiger auf ein Array einträgst, kannst du dahinter ein Komma und die Anzahl der gewünschten Elemente angeben (sonst würdest du nur das erste sehen).

    Du kannst selbst Debug-Ausgaben im Ausgabefenster ausgeben, indem du die Funktion OutputDebugString benutzt.

    Das wären wohl erstmal genug Stichwörter. Danach kannst du nun suchen, falls was unklar ist.



  • Ok, danke hab da jetzt mal ein bischen rumprobiert. Ich würde gerne feststellen, wenn der Wert eine globalen Variablen geändert wird, inklusive Ausgabe des aktuellen Wertes, wie mache ich das?



  • Indem du einen Breakpoint setzt



  • hustbaer schrieb:

    Indem du einen Breakpoint setzt

    Ich habe jetzt in der Headerdatei in der die globale Variable deklariert ist, versucht den Breakpoint zu setzten, der Kompiler meint dann:

    "Der Haltepunkt wird momentan nicht erreicht. Bla bla...".

    Also ich erkläre nochmal was ich bezwecke zu erreichen. Sagen wir mal ich habe eine globale Variable, die ich überwachen möchte, jetzt nicht an eine Codezeile oder Funktion gebunden, sondern immer wenn eine Änderung daran auftritt möchte ich die Änderung sehen.
    Der Hintergrund ist folgender: es ist mir schon mehr als einmal passiert, daß ich aus Versehen den Status einer solchen Variablen geändert habe ohne es zu merken. Dies kann z.B. dann auftreten, wenn die Variable in einem Strukt liegt um man per memset das Strukt auf z.B. "0" setzt, hierbei wird die Variable ja nicht kongret aufgerufen sondern nur das Strukt in dem sich die Variable befindet.



  • Was du suchst, ist ein Datenhaltepunkt (hatte ich ja schon erwähnt). Du wirst jedesmal benachrichtigt, wenn sich im Speicher an der Stelle was ändert.

    Übrigens zu deiner Meldung (Haltepunkt wird nicht erreicht): kann es sein, dass du den Release-Build deiner Anwendung erstellst (statt Debug)?



  • Alles klar, danke ich habs gerafft. Mit dem Datenhaltepunkt funktionierts jetzt so wie ich es mir gewünscht habe.


Anmelden zum Antworten