DirectX 9.0 의 소개 DirectX SDK 의 사용법 C 또는 C++ 에 의한 DirectX 프로그래밍 DirectX 애플리케이션의 디버그 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
여기에서는, C 및 C++ 애플리케이션의 디버그에 대해 설명한다. 설명하는 주제는, 다음과 같다.
Microsoft® DirectX® 소프트웨어 개발 킷 (SDK) 인스톨 프로그램에는, DirectX 동적 링크 라이브러리 (DLL)의 디버그 빌드 또는 리테일 빌드의 어느쪽이든을 인스톨 하는 옵션이 있다.
C++ 로 소프트웨어를 개발하고 있는 경우는, DLL 의 디버그 버전을 인스톨 하면 된다. 이 옵션에서는, 디버그 및 리테일의 DLL 가 시스템에 인스톨 된다. 리테일 버전에서는, 리테일 DLL 만이 인스톨 된다. DLL 의 디버그 버전에는 내부 데이터 구조를 검증하는 추가 코드가 있어, 프로그램의 실행중에 (OutputDebugString 함수를 사용해) 디버그의 에러 메시지를 출력한다. 에러가 발생 하면, 문제의 상세가 디버그 출력된다. DLL 의 디버그 버전은 리테일 버전보다 동작이 늦지만, 애플리케이션의 디버그에는 리테일 버전보다 도움이 된다. 애플리케이션을 출하하는 경우는, 리테일 버전을 출하하는 것.
SDK 의 디버그 버전이 인스톨 되고 있는 경우, DirectX 컨트롤 패널 유틸리티를 사용해, 대부분의 구성 요소의 디버그 빌드와 리테일 빌드를 교체된다. 이 기능을 유효하게 하려면 , SDK 를 인스톨 할 경우에 [디버그] 옵션을 선택한다.
디버그 메시지를 확인하려면 , 윈도우내나 리모트 컴퓨터에 디버그 출력이 표시되도록, 시스템의 구성을 설정한다. Microsoft Visual Studio® . NET 등의 개발 환경에서는, 이 설정이 가능하다. 설정 방법법에 대해서는, 개발 환경에 대한 문서를 참조할것.
디버그용의 빌드를 사용하는 경우는, 디버거가 관련하는 상징적 정보를 확실히 찾아낼 수 있도록(듯이) 하기 위해서, 이하에 나타내는 장소에 심볼 파일을 놓아두지 않으면 안 된다.
operating system | 디버거 | . pdb 파일의 장소 | . dbg 파일의 장소 |
---|---|---|---|
Microsoft Windows® 98 | Microsoft Visual C++® | 바이너리와 같은 디렉토리 | 바이너리와 같은 디렉토리 |
Windows 2000 | Visual Studio . NET | 바이너리와 같은 디렉토리 | %SystemRoot%\Symbols\<binary extension>\ |
Microsoft Windows NT®, Windows 2000 | Visual C++ | 바이너리와 같은 디렉토리 | %SystemRoot%\Symbols\<binary extension>\ |
Windows NT, Windows 2000 | NTSD/KD | %SystemRoot%\Symbols\<binary extension>\ | %SystemRoot%\Symbols\<binary extension>\ |
Windows XP | Visual Studio . NET | 바이너리와 같은 디렉토리 | %SystemRoot%\Symbols\<binary extension>\ |
리테일 런타임을 인스톨 하고 있어 디버그 런타임으로 변경하고 싶은 경우는, (DXSDK) \SDKDev\WindowsXP 폴더에 있는 Dxpsetup.exe 를 실행한다.
디버그 런타임을 인스톨 하고 있어 리테일 런타임에 되돌리고 싶은 경우는, Windows System 폴더에 있는 Undxxpdebug.exe 를 실행한다. 이 조작은,[스타트] 버튼을 클릭해,[파일명을 지정해 실행] 을 클릭해, 다이알로그 박스에 「undxxpdebug」라고 입력해도 실행할 수 있다.
C++ 메모리의 파손을 발견하려면 , Compuware 사의 BoundsChecker 등의 메모리 파손/누수 툴의 사용을 검토하면 좋다.
Microsoft 에서는, MSDN® 로 "knowledge base (놀리지(knowledge ) 베이스)" 의 기사 데이타베이스를 공개하고 있다. 기사를 참조하려면 ,www.microsoft.com/japan/msdn/ (일본어)에 접속하는지,msdn.microsoft.com (영어)에 접속해, 목적의 주제를 검색한다.
AppVerifier 툴은, heap의 파손, 잠금의 사용, 무효인 핸들, thread 스택 사이즈의 체크등에 대해서 애플리케이션을 감시한다. 이 툴을 찾아내려면 ,MSDN Library 로 「Testing Applications with AppVerifier」라고 검색한다.