Debugging bei Visual Studio 2008

Early09

Grünschnabel
Hallo an alle,

ich nutze wie im Titel schon gesagt das Visual Studio 2008 Professional und habe Probleme beim Debugging.

Wenn ich z.B. folgenden code eintippe und bei der 8. Zeile einen Haltepunkt einsetze und das debuggen anfange, würde ich wollen das unten die variablen usw. angezeigt werden. Aber das passiert nicht, wenn ich in einzelschritten weitermache, springt er in dateien wie printf.c, _file.c, mlock.c, _sftbuf.c usw. manchmal kommt es auch vor, das assembler dateien geöffnet werden. Ich würde es eigentlich einfach gesagt wie beim Borland Builder haben wollen, wo die einzelschritte auch in dieser datei gemacht werden. Ich hoffe Ihr könnt mir helfen.

C++:
#include <stdio.h>

int main(void)
{
	int zahl1=0;
	printf("Quadratzahlen!\n");
	scanf("%i", &zahl1);
	for(int i=0;i<=10;i++)
	{
		printf("Die Quadratzahl von %i ist %i\n", i, i*i);
	}

	fflush(stdin);
	getchar();
}
 

Endurion

Erfahrenes Mitglied
Du musst unterscheiden, es gibt "Einzelschritt mit Ins Unterprogramm springen" (Default F11) und "Einzelschritt mit Überspringen" (F10). Das, was du möchtest, dürfte F10 sein.

Hast du das Projekt auch als "Debug" erstellt? Die Variablen sollte VS dann auf jeden Fall hinbekommen.
 

xtr23

Grünschnabel
Auch wenn das Thema schon geklärt ist, würde ich es gern nochmal hochholen und eine Frage anschließen. Ich beginne gerade erst mit C++ und Visual Studio und habe das mit dem Debuggen auch noch nicht ganz durchschaut. Manchmal klappts und manchmal nicht.

Verwende ich zum Beispiel den Befehl cout und debugge mit F11, dann spingt der Debugger automatisch in die Datei ostream und ich kann nachverfolgen, was da geschieht. Zumindest theoretisch, das verstehen ist eine andere Frage. :) Bei meinen bisherigen Übungen hat es auch immer geklappt, der Debugger ist mit F11 automatisch in die verschiedenen eingebundenen Dateien gesprungen. Ich dachte so ist das immer..

Nun habe ich aber die Bibliothek OpenCV (enthält Funktionen für die Bildverarbeitung..) installiert und sie funktioniert auch. Um zu sehen, wie verschiedene Funktionen implemetiert sind, wollte ich im Debugging Modus mit F11 einfach in die Funktionen reinspringen, aber das klappt nicht. Der Debugger überspringt die Zeile und ich komme nicht "tiefer" rein. Das einzige was funktionert ist, dass ich auf einen Funktionsnamen gehe und per Rechtsklick auf "Gehe zu Deklaration", dann gelange ich zu passenden Datei und Stelle. Aber ich würde gern auch die Definition sehen.. :rolleyes:
 
Zuletzt bearbeitet:

Endurion

Erfahrenes Mitglied
Damit das Debuggen so funktioniert, müssen die Programme entsprechend erstellt werden (die enthalten dann zusätzlich Daten). Wenn externe Bibliotheken eingebunden werden, geht das Reinspringen natürlich nur, wenn auch die entsprechenden Daten vorhanden sind.

Sonst ist es wie bei dir, man sieht nichts bzw. bestenfalls den generierten Assemblercode, welcher nicht mehr ganz so dolle lesbar ist.
 

xtr23

Grünschnabel
Hallo, danke dir für die Antwort.
Den Assemblercode habe ich auch schon zu sehen bekommen. Ich habe mir das Debuggen wohl etwas zu einfach vorgestellt, weil ich es bisher fast nur mit eigenem Code versucht habe und es da prima klappte.
Ich dachte mir so, der Computer wird schon wissen wo der passende Code steht, schließlich hat er ja auch das Programm erstellt, da kann er mir die Stelle doch einfach mal zeigen. :)

Ist aber wohl viel komplizierter,.. Ich werde mal versuchen rauszufinden, was es mit diesen "weiteren Daten" auf sich hat. ;)