Ich habe einen gegebenen C ++ Code mit der F11 Taste (Step Into Modus) getestet, um die genaue Reihenfolge zu verstehen, in der die Funktionen im Code aufgerufen wurden, und ich erkannte, dass es war würde niemals in einige Funktionen eintreten, außer ich setze einen Haltepunkt auf eine Zeile innerhalb der Funktionsdefinition.
Ich meine, wenn ich eine Funktion von der Hauptmethode aufrufen und die Funktion in einer anderen .cpp definiert bin, erwarte ich, dass der F11 Debugging-Modus Schritt für Schritt eintritt innerhalb der Funktion, um die Variablenänderungen zu analysieren. Die meiste Zeit es tut, aber in einigen Fällen führt es nur die Funktion aus, ohne darin zu gehen, und springt zur nächsten Linie in der Hauptmethode.
Warum passiert das?
Beispiel:
Dies ist die Funktion, in die F11 niemals eintreten würde:
%Vor%Dies ist die Hauptmethode, bei der F11 Schritt für Schritt geht:
%Vor%Sie benötigen Debuginformationen, um den glutMainLoop einzugeben. Wenn für glutMainLoop kein Quellcode oder keine Debuginformationen verfügbar sind, kann der Debugger den Quellcode nicht anzeigen. Wenn Sie diese Funktion einzeln ausführen möchten, müssen Sie beide hinzufügen.
Alternativ können Sie mit Shift - F11 die Disassemblierung aufrufen. Aber ich denke nicht, dass dies in diesem Fall helfen wird.
Verdient einen schnellen Check ..
Wechseln Sie in Visual Studio zu Tools & gt; Optionen ...
Klicken Sie auf Debugging auf der linken Seite
Auf der linken Seite nach Nur meinen Code aktivieren (verwaltet) , wenn es markiert ist, deaktivieren Sie es, drücken Sie " OK "
Für eine gute Maßnahme schließe ich immer VS und geh zurück in
Gehen Sie beim Durchlaufen des Codes in CameraMain
davon aus, dass Sie beim Aufruf von display
? in glutDisplayFunc(display);
treten können?
In diesem Fall passiert das nicht, weil die Funktion display
an diesem Punkt nicht aufgerufen wird . Stattdessen wird es von GLUT gespeichert, um von innerhalb der GLUT-Hauptschleife aufgerufen zu werden. Sie müssen in der Funktion display
einen Haltepunkt setzen, um einen Schritt zu durchlaufen.
Tags und Links c++ visual-studio-2008 visual-studio-debugging