2009-06-18 7 views
2

alt text http://i42.tinypic.com/24v37mc.jpgVisual Studio - ungültig std :: string Debugger Ausgabe im Release-Modus

Es ist nichts Besonderes in diesem Programm geht, aber ich garbage Ausganges. Hier sind die Header-Dateien, die ich einschließe, falls das relevant ist.

#include <cstdlib> 
#include <iostream> 
#include <windows.h> 
#include <vector> 
#include <string> 
#include <sstream> 

Und ich verwende Visual Studio 2008 auf Windows XP.

Beachten Sie, dass, wenn ich die Zeichenfolge auf stdout drucke, es "Test" völlig in Ordnung druckt.

Antwort

4

Manchmal hat der Debugger Probleme, korrekte Werte zu übernehmen, wenn Sie im Freigabemodus kompiliert haben. Der Compiler tauscht Operationen aus oder verschiebt Werte in Register usw.

+0

Gibt es eine Möglichkeit, tatsächliche Werte (z. B. für eine Zeichenfolge) anzuzeigen, ohne sie zu drucken? Vielleicht mit Watch-Fenster? –

+0

@PavelK Nein, das Überwachungsfenster verwendet denselben Mechanismus, um den Wert zu finden. Die einzige Möglichkeit besteht darin, zu einem Debug-Build zu wechseln oder zu Assembler zu wechseln, um den optimierten Code zu sehen. –

Verwandte Themen