2009-06-18 5 views
2

alt text http://i42.tinypic.com/24v37mc.jpg비주얼 스튜디오 - 릴리스 모드에서 유효하지 않은 표준 : : 문자열 디버거 출력

가이 프로그램에서 진행 공상 아무것도 없다,하지만 난 쓰레기 출력을 얻을. 헤더 파일은 관련성이있는 경우에 포함됩니다.

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

그리고 Windows XP에서 Visual Studio 2008을 사용하고 있습니다.

문자열을 stdout으로 인쇄하면 "test"가 완벽하게 인쇄됩니다.

답변

4

때때로 릴리스 모드에서 컴파일 한 경우 디버거에서 적절한 값을 선택하는 데 문제가있을 수 있습니다. 컴파일러가 연산을 바꾸거나 값을 레지스터 등으로 옮길 수도 있습니다.

+0

인쇄하지 않고 실제 값 (예 : 문자열)을 표시하는 방법이 있습니까? 조사 식 창을 사용하고 있을까요? –

+0

@PavelK 아니오, 조사 식 창은 동일한 메커니즘을 사용하여 값을 찾습니다. 유일한 방법은 디버그 빌드로 전환하거나 어셈블러로 드롭하여 최적화 된 코드를 확인하는 것입니다. –

관련 문제