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

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

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 변수의 값을 확인하십시오.
알림
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.

경고: 이 문서는 자동 번역되었습니다

속성

문서 ID: 326616 - 마지막 검토: 01/17/2015 05:51:40 - 수정: 2.0

  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbdebug kbbug KB326616 KbMtko
피드백