BUG: CK1020 또는 CK4009 64 K 형식 정보 초과하는 경우 발생했습니다.

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

현상

두 개 이상의 64 K 형식 인덱스 정보 포함하는 응용 프로그램의 디버그 버전을 빌드할 CVPACK 버전을 사용 중인 따라 다음 오류 메시지 중 하나 이상을 발생할 수 있습니다.
CK1020 CVPACK: 치명적인 오류: 압축된 형식 인덱스가 모듈에서 65535 초과하는 <filename.obj>
CK4009 CVPACK: 경고: 64 K 형식 초과했습니다 후속 형식을 삭제합니다.
cvpack.exe 내부 오류 - 예외 코드 0xc0000005입니다.

원인

이러한 오류는 64 K 압축된 기호 형식의 수를 초과하는 경우 오버플로가 원인은 16 비트 값을 해당 CodeView 기호 형식 정보를 인덱스가 있습니다 팩트 부분적으로 기한 있습니다.

CK4009 Visual C++ 버전 1.0 (32비트) 및 이전 CK1020 오류 메시지의 버전 1.5 (16비트) 대체 있음을 유의하십시오. CK1020, 함께 해당 packer 실패하여 프로그램을 디버깅할 수 있습니다. CK4009, 해당 packer 장애를 복구하지 않습니다 있지만 모든 후속 nonprimitive 형식을 삭제합니다. 이 해당 형식이 삭제된 이러한 기호를 디버깅할 프로그램을 최소한 허용합니다.

해결 방법

성공적으로 디버깅할 수 있도록 응용 프로그램에서 기호 수를 줄이기 위해 수행할 수 있는 몇 가지 다음과 같습니다.
  1. /Zi 함께 디버깅하고 대한 나머지/Zd 사용하는 데 필요한 원본 파일만을 컴파일하십시오. 응용 프로그램에서 기호 수를 줄일 수 있습니다. (프로그래머 사용하는 경우 컴파일 모듈 내에서 이러한 도구를 선택적 아니기 때문에 워크벤치에 (PWB) 또는 Visual 작업 영역에서 이를 또한 외부 메이크파일을 사용하여 시작해야 합니다.) /Zd 사용하여 컴파일하는 경우에 대한 모듈만 줄 번호 지원을 받을 수 있습니다. 링커 맵파일이 필요한 경우 에서 CodeView 전역 데이터 적어도 볼 수 있으므로 공용 기호가 있는 위치를 확인할 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 참조하십시오.
    48241맵 파일 주소 및 메모리 위치 간의 관계
  2. Visual C++ MFC를 사용하는 경우/Z7 대신/Zi 스위치 사용하여 MFC 라이브러리를 다시 빌드해 봅니다. 모든 기호 형식 정보를 포함하는 전체 라이브러리의 .PDB (프로그램 데이터베이스) 파일을 만들 수 있습니다. 소스 파일을 컴파일하는 동안 때마다 컴파일러에서 새 기호에 대한 형식 정보를 생성할 이를 이 형식을 이미 있는지 보려면 PDB 파일을 확인합니다. 그렇다면 형식이 추가되지 않습니다. 이 프로세스를 사용하면 형식 정보 총 그렇지 않은 경우 (MFC에 대한) 만든 .OBJ 파일이 있어야 때와 중복 형식을 제거하여 줄어듭니다/Z7 사용하여 라이브러리. /Zi 사용하여 packer 보다 효율적으로 작동할 수 있도록 packer 코드, 실행되기 전에 줄어들 수 중복을 발생합니다.
  3. 응용 프로그램에 대해 하나의 .PDB 파일을 지정하려면/Fd 사용하여 Visual C++ 프로젝트를 컴파일하십시오. 다시 여기에 있는 packer 실행되기 위해 다중 모듈 응용 프로그램에 있는 중복 제거하여 형식의 수를 줄이는 것입니다. 이 Visual 작업 영역에서 데이터를 작성하는 경우 자동 있음을 유의하십시오. MSVC.PDB 기본 파일 이름이 지정됩니다:/Fd 사용하여 다른 이름을 지정할 수 있습니다. 기본 중복 정보를 소거합니다) PDB 파일을 사용할 수 있으므로 문제가 훨씬 덜 발생할 수 있습니다. PDB 사용할 수 있도록/Zi/컴파일하고 IDE에서 프로그램 데이터베이스 해제할 않을 때 않는 Z7 사용합니다 (또는/PDB 사용할: 명령줄에 없음).
  4. 가능한 경우 일부의 클래스, 구조체, 열거형 및 공용 구조체 같은 복잡한 형식을 제거하는 것이 좋습니다. 응용 프로그램에서 중복해서 포함되지 형식의 가능성을 줄일 수 있습니다.
  5. 전혀 일부 모듈을 디버깅 정보 없이 컴파일하십시오. MFC를 사용하는 경우, _DEBUG 및 _DEBUG 없이 컴파일된 모듈이나 컴파일되지 모듈을 혼합할 수 주의를 기울여야 합니다. 코드뷰 함께 MFC 라이브러리를 빌드하는 시도하십시오 = 0 또는 코드뷰 기호 정보의 양을 줄이기 위해 2 = (DEBUG 기본값은 "= 1 _DEBUG 정의하는"). 코드뷰 함께 클래스 라이브러리를 빌드할 때 = 0, 모든 라이브러리에 디버깅 정보를 사용할 수 없습니다. 하지만 TRACE 및 ASSERT 함수 디버깅을 MFC 계속 사용할 수 있습니다. 코드뷰 함께 = 2, 라이브러리의 일부 구성 요소 디버깅 정보와 함께 빌드됩니다. README.TXTMFC 라이브러리를 사용할 수 있는 디버깅 정보를 제한하는 측면에서 옵션 중 어떤 각 더 \MFC\SRC 설명합니다. 추가 정보는 수도 있는 "클래스 라이브러리 안내서의" 부록에 같이 찾을 수 있습니다.
    부록 B Visual C++ 버전 1.0 (16비트)
    부록 A Visual C++ 버전 1.5 (16비트)
    부록 B Visual C++ 버전 1.1 (32비트)
  6. 다른 확인되지 않은 가능한 솔루션이 하나의 미리 컴파일된 헤더는 관련이 있습니다. 활성화 보십시오 또는 미리 컴파일된 헤더 사용을 사용 안 함, 둘 중 현재 사용하지 않는 및 다음 다시 모든 것을. 이 헤더 파일 응용 프로그램의 사용 따라 다양한 영향을 미칠 수 있습니다.

현재 상태

Microsoft는 이 MS-DOS 버전 4.0, 4.1, 및 4.26, CVPACK 유틸리티 및 CVPACK 유틸리티에 대한 Windows NT 버전 4.25 문제를 확인했습니다. 이 문제는 연구 및 대로 Microsoft 기술 자료에서 새 정보를 게시할 예정입니다.

추가 정보

기호 및 형식 OMF 사양 기호화된 디버깅 정보를 이러한 개체 모듈 및 .PDB 파일에 포함된 Visual C++) 에서 컴파일러에서 내보낸 두 테이블에 포함되어야 합니다. 첫 번째 테이블의 $ $ 기호를 라고 하며 개체 파일에 기호를 두 번째 $ $ 형식 호출되고 기호 형식에 대한 정보가 들어 있지만 설명합니다. 예를 들어, 문의 "int i, int"형식의 "i" 기호를 정의합니다."". 필드가 사용되는 두 테이블의 레코드가 다른 테이블의 레코드 인덱스 수. 또한 세 번째 테이블을 링커에 의해 생성되고 실행 파일로 작성된 기호화된 정보가 있습니다. PUBLICS 라는 테이블과 개체 파일을 처리하는 동안 발생한 각 공용 기호 기호 레코드가 있습니다.

CVPACK의 중복 기호 및 형식 정보를 제거하고 CodeView 처리를 위해 최적화된 형식으로 나머지 정보를 다시 쓰기 위한 것입니다. 16 비트 값을 인덱스 자체에 있기 때문에 이 남은 정보를 형식 인덱스가 64 K 초과할 수 없습니다. 이 인덱스 사양에 일부이므로 있는 많은 타사 공급업체에서 제공한, 종속된 도구를 손상시키지 않고 변경할 수 없습니다.

속성

기술 자료: 112335 - 마지막 검토: 2003년 10월 23일 목요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft CVPACK for MS-DOS 4.0
  • Microsoft CVPACK for MS-DOS 4.10
  • Microsoft CVPACK for MS-DOS 4.26
  • Microsoft CVPACK Utility for Windows NT 4.25
  • Microsoft CVPACK Utility for Windows NT 4.27
키워드:?
kbmt KB112335 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 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