BUG: Visual C++ .NET 또는 Visual C++ 2005 디버거가 std::string 및 std::wstring 변수를 올바르게 표시할 수 없습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 326616 - 이 문서가 적용되는 제품 보기.
알림
모두 확대 | 모두 축소

이 페이지에서

현상

디버거가 적절하게 다음 문자열 값이 표시되지 않을 수 있습니다.
  • 문자열의 길이는 15자 것보다 더 큰 경우 std::string 변수.
  • 문자열의 길이는 15자 미만인 경우 std::wstring 변수.

원인

길이는 15자 미만인 경우 std::string 또는 std::wstring 변수는 정적 버퍼로 저장됩니다. 문자열의 길이는 15자 보다 크면 문자열은 메모리에 대한 포인터가 저장됩니다.

std::string 변수의 디버거 표시를 제어하는 Autoexp.dat 파일을 수정할 수 있습니다. _Bx._Buf 멤버 변수로 정적 버퍼 저장된 std::string 지정하는 데 사용됩니다. _Bx._Ptr 구성원 메모리에 대한 포인터를 해당 std::string 저장됩니다 지정하는 데 사용됩니다. autoexp.dat에 파일의 std::string _Bx._Ptr 구성원 지정되지 않은 경우 디버거를 길이는 15자 보다 커야 std::string 변수가 표시되지 않습니다. autoexp.dat에 파일의 std::wstring _Bx._Buf 구성원 지정되지 않은 경우 디버거를 미만의 15 문자 길이를 std::wstring 변수를 표시하지 않습니다.

해결 방법

변수 값을 표시하는 디버거 구성 요소는 식 계산기 (EE) 로 알려져 있습니다. 네이티브 코드 한 인스턴스를 EE 처리하고 관리되는 코드를 다른 인스턴스가 처리합니다. 네이티브 EE에 대한 사용자 지정 Autoexp.dat 파일을 제공하고 관리되는 EE 사용자 지정 Mcee_mc.dat 파일을 제공합니다. 이 문제를 해결하려면 해당 Autoexp.dat 수정 파일.

Autoexp.dat 파일을 수정하려면 다음과 같이 하십시오.
  1. 메모장이나 다른 텍스트 편집기를 엽니다.
  2. c:\Program Files\Microsoft Visual Studio .NET\Common7\Packages\Debugger 폴더에서 Autoexp.dat 파일을 엽니다.
  3. Autoexp.dat 파일에서 다음 줄을 찾습니다.
    • std::basic_string<char,std::char_traits<char>,std::allocator<char> >=<_Bx._Buf>
    • std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=<_Bx._Ptr>
    • std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=<_Bx._Ptr>
  4. 3 단계에서 다음 줄이 있는 줄을 바꿉니다.
    • std::basic_string<char,std::char_traits<char>,std::allocator<char> >=
      _Buf=<_Bx._Buf> _Ptr= <_Bx._Ptr>
    • std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=_Buf=<_Bx._Buf> _Ptr= <_Bx._Ptr>
    • std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=<_Bx._Buf> _Ptr= <_Bx._Ptr>

현재 상태

Microsoft 문제는 이 문서의 시작 부분에 나열한 제품에서 문제를 확인했습니다.

추가 정보

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. 새 Visual C++ Win32 프로젝트 만들기:
    1. 파일 메뉴에서 새로 만들기 를 클릭하십시오.
    2. 프로젝트 형식 에서 Visual C++ 프로젝트 를 클릭한 다음 템플릿 에서 Win32 프로젝트 를 클릭하십시오.

      참고 Visual Studio 2005에서 Visual C++ 프로젝트Visual C++ 로 변경됩니다.
    3. 프로젝트 이름을 LongStringDemo.
    4. Win32 응용 프로그램 마법사, 응용 프로그램 설정 을 클릭한 다음 콘솔 응용 프로그램으로 응용 프로그램 종류 선택하십시오.
    5. 추가 옵션 에서 빈 프로젝트 확인란을 클릭한 다음 마침 을 클릭하십시오.
  2. 솔루션 탐색기 에서 소스 파일, 오른쪽 단추로 클릭한 다음 새 C++ 추가 파일.
  3. LongStringDemo.cpp 파일의 이름을 지정합니다.
  4. 네임스페이스를 사용하여 LongStringDemo.cpp file:
    #include <string>
    using namespace std;
    void main()
    {
    	//Ansi String
    	string szAnsiString;
    	szAnsiString = "c:\\Program Files\\Microsoft Visual Studio .Net";
    
    	//Wide Char String
    	wstring wszWCharString;
    	wszWCharString = L"c:\\Program Files\\Microsoft Visual Studio .Net";
    }
    
  5. 빌드 메뉴에서 눌러 빌드 솔루션.
  6. 디버그 메뉴에서 코드 (F11) 단계 클릭한 디버깅을 시작하십시오.
  7. 디버그 메뉴에서 Windows, 위해 조사식 을 차례로 가리킨 다음 watch1 을 클릭하십시오.
  8. szAnsiString 변수 및 wszWCharString 변수를 조사식 창에 추가하십시오. 또한 szAnsiString 또는 wszWCharString 변수가 가리키는 값을 조사할 수 있습니다.
  9. 조사식 창에서 szAnsiString 또는 wszWCharString 변수의 값을 확인하십시오.

속성

기술 자료: 326616 - 마지막 검토: 2006년 1월 12일 목요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
키워드:?
kbmt kbdebug kbbug KB326616 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com