음 참고로 2003 에서는 정상적으로 되고 2002에서는 안된다.
자세한 내용은
http://support.microsoft.com/default.aspx?scid=kb;EN-US;326616
에 있는데 요약하면 std::string 의 내용이 15자를 넘어가면 디버거에서 정상적으로 값을 볼수 없는 현상이 발생한다는 것이다.
이 내용을 찾아본 이유는 std::stringstream 을 이용해서 문자열을 만들어서 std::string 에 넣을때 어째서 인지 정상적인 값이 들어가지 않아서 이것저것 살펴보다가 std::string 의 맴버변수중에 _Ptr 에는 내가 원한 정상적인 문자열이 들어있는데 실제로 찍어주는 애들은 _Buf에 있는 문자라서 어찌어찌 찾아보게 되었다.
위의 문서의 경우는 디버거에서만 문제가 발생하는거라 했으니 내가 처했던 문제는 아마 또 다른 에러가 있지 않았을까 하지만… 이것저것 수정하다가
“크아 닝기미! 리빌드닷!”
하고 리빌드 했더니 정상적으로 출력이 되서…. 무척 허무해 하고 있는 중이다.
음 비주얼 스튜디오 2002는 조만간 안쓰게 될 예정이지만(회사에서도 내가 하고 있는 프로젝트에서 나혼자만 쓰고 있다.) 어쨋거나 메모.