WDEB386 사용에 팁

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

이 페이지에서

요약

그러나 Windows SDK (소프트웨어 개발 키트) 에서 제공하는 WDEB386 디버거 매우 유용한 기능이 많이 있으며, 단점 수를 수도 있습니다. 이 문서에서는 일부의 WDEB386 수 및 수행할 수 없습니다, 몇 가지 사용 팁 제공합니다 것을 설명합니다.

추가 정보

WDEB386 사용 이유

WDEB386 디버거 원래 개발하고 Windows 확장된 모드 계층 디버깅을 위한 Microsoft 내부 도구로 작성되었습니다. 이와 같이 여러를 가지 보호 모드 시스템 멀티태스킹 디버깅하는 데 필요한 고급 기능 유지합니다. 한 번에 하위 수준의 특성상이 디버깅 환경 까다로운 많은 상황에서 혼동될 수 있습니다. 그러나 많은 경우에 이 디버거 특히 유용한 또는 심지어 완전히, 다음과 같은 문제를 진단하는 데 필요한 곳에 있습니다.

  • CVW 않은 추적 됩니다 낮은 수준의 코드를 통해 추적
  • 가상/선형/실제 메모리 보기
  • 386 프로세서에 데이터 (예: GDT, 고급 보기 LDT, IDT, 및 모든 해당 PMODE 등록합니다.
  • 하드웨어 인터럽트 처리기를 추적
  • 종료 및-상주 프로그램 (TSR), 또는 MS-DOS 장치 드라이버를 추적
  • 가상 컴퓨터 (VM) 상태 표시
  • 모든 인터럽트 및 확장된 모드 예외 모니터링
  • 개발 및 확장된 모드 가상 장치 (VxDs) 디버깅
하지만 철저한 목록 아니므로 이를 WDEB386 디버거 일반적으로 사용될 수 상황에서 일부 설명하기 위해 역할을 해야 합니다.

디버거를 시작할 때 프로그램으로 주요 내용

"Microsoft Windows 소프트웨어 개발 키트 도구" 설명서 9장에 언급된 하나의 명령줄 옵션은/B 옵션입니다. /B WDEB386 명령줄에서 지정하는 Windows 시작 중에 실행을 중단할 수 디버거에서. 이 옵션은 디버거를 실행할 첫 번째 명령 실행이 중단됩니다 보증하지 않습니다. 사실 Windows 초기화 전에 VxD를 로드한 후에 디버거를 때까지 실행을 중단하지는지 않습니다.

일반 문서로 디버거 주요 내용

WDEB386 실행되고 있는 경우 Ctrl + Alt + SYS RQ 키 조합은 사용하여 현재 명령 스트림의 실행이 중단되었습니다 수 있습니다. 이 키보드 인터럽트 정확한 위치에서 실행이 중지되지 않고, 가상 컴퓨터 관리자 (VMM) 위치에서 실행이 중단됩니다. (아래 참조) .VM 명령을 사용하여 중단된 가상 컴퓨터의 레지스터의 내용은 검사할 수 있습니다.

또는 BP 명령 또는 코드를 직접 모아 인터럽트 지침의 중단점은 설정할 수 있습니다. INT 1 또는 INT 3 명령을 사용할 수 있습니다. INT 1 "예기치 않은 추적 인터럽트" 메시지를 만들기 및 명령 이후에 있는 INT 1 중지 차이입니다. 이 메시지는 오류 조건을 나타내지 않는 및 무시할 수 있습니다. INT 3 INT에 대한 직접 해제하고 메시지를 생성할 수 없습니다. 중단점 명령이 적중될 일단 "Z" 명령은 사용하여 영구적으로 제거할 수 있습니다. 이 명령은 NOPs (작업 없음) INT 기계어 대체합니다.

또한 필요한 하드웨어를 사용할 수 있는 경우 nonmaskable 인터럽트 (NMI) 중단하고 디버거를 사용할 수 있습니다. 일반적으로 개발 컴퓨터 슬롯에 디버깅 카드가 연결되어 있는 외부 "STOP 단추가 필요 의미합니다. 일부 컴퓨터 시스템 버스 NMI 줄에 전면 패널 단추를 연결할 수 있는 기능이 있을 수 있습니다. 어떤 경우이든 NMI 사용하여 "인터럽트를 사용할 수 있는 중단으로" 컴퓨터에 중단할 수 있다는 장점이 있습니다.

가상 장치 드라이버 (VxDs) 개발하는 프로그래머는 Debug_Out 매크로 ASCII 문자열 위해 디버그 터미널 보내고 디버거에 중단 없는 INT 1 실행하는 결합하는 데 사용할 수 있습니다.

표준 모드에서 WDEB386 사용하여

그러나 WDEB386 디버거 향상된 모드는 주로 디버깅에 제공되는, 386 프로세서에 표준 모드에서 사용할 수도 있습니다. 여러 가지 기능 사용할 수 있는 Windows 3.0 특히 없는 점을 제외하면 일반적으로 표준 모드에서 WDEB386 디버거의 확장된 모드 같은 작업입니다.

예를 들어, "/b" 시작 시 중단 옵션은 Windows 3.0 확장 모드에서 사용할 수 있습니다. Windows 3.1 표준 모드에서 사용할 수 있습니다. "점" 명령 마침표로 시작하는 명령이 확장된 모드 제공되며 표준 모드에서 사용할 수 없습니다.

해당 프로세서 상태 확인

컨트롤 디버거에 부여된 후 사용되는 프롬프트 문자를 프로세서가 보호 모드 상태를 제공합니다. 어떤 프롬프트 문자가 표시될 수 및 각 의미는 다음 목록에 나와:
    Character  Meaning
    ---------  -------

       >       The processor is in real mode
       #       The processor is in protected mode
       -       The processor is in virtual 8086 mode
				
있는 프로세서입니다 있는 모드입니다 어떤 코드가 실행되고 있는 좋은 것일 수 있습니다. 예를 들어, 프롬프트, "-" (하이픈), 현재 명령 스트림을 어딘가에 있는 MS-DOS, BIOS, 또는 TSR 또는 MS-DOS 장치 드라이버가 있는 것입니다. 확장된 모드 계층 Windows의 프로세서 MS-DOS 또는 BIOS 함수를 실행하려면 V86 모드로 전환해야 합니다 때문입니다. 또는 "#" (숫자 기호) 메시지가 있는 경우 보호 모드 코드를--Windows 기반 응용 프로그램, DLL, 또는 확장된 모드 계층 수--실행 중입니다.

"실행 중인 알면" 가장 중요한 측면 중 하나는 일부 WIN386.EXE 인식 WDEB386 Windows에서 향상된 모드에서 사용할 때. 이 모듈에서는 VMM (가상 컴퓨터 관리자) 및 모든 VxD (가상 장치) 구성됩니다. "확장된 모드 레이어를 로," "링 0인 코드" 하는 이러한 구성 요소는 종종 통틀어 합니다 또는 단순히 "WIN386." Windows 3.0 및 3.1을, 작업, 버전 3.0, 3.1, 및 3.11, Windows에서 디버거를 프롬프트 "#" CS 레지스터의 값을 0028h, 경우 해당 컴퓨터에 있는 WIN386 중지된 의미합니다.

WIN386 중지 수도 있고 바람직하지 않습니다. 예를 들어, WDEB386 WIN386 있는 중지 기능을 통해 문제의 VxD 단일 단계 VxD 개발자가 수 있습니다. 그러나 응용 프로그램 또는 장치 드라이버 프로그래머가 해당 "모드 인식 보호된 때문에" WDEB386 사용하여 WIN386 무엇을 없음 관심이 있을 수 있습니다. 어떤 경우이든 현재 실행 스트림에 관련된 시스템 구성 인식하는 WDEB386 효과적으로 사용하여 있는 중요한 단계입니다.

점 명령 사용

아마도 가장 흥미로운 (및 혼동될) 부분을 WDEB386 사용하는 방법에 대한 명령을 마침표 앞에 있는 "점" 명령이 관련됩니다. 혼란 원인 중 하나는 디버깅 버전의 WIN386.EXE 설치되어 있지 않으면 점 명령의 대부분은 사용할 수 있습니다. 예를 들어, 확장된 모드 Windows가 실행되는 동안 다음과 같은 메시지가 표시되는 경우
로드되지 않은 Win386 버전 또는 응답하지 않는 디버그
대부분 WIN386.EXE 정품 버전을 설치한 의미합니다. 디버깅 버전의 WIN386, 쿼리 단어가 있는 설치에 대한 자세한 내용은 다음을 참조하십시오.
prod(winddk) 및 wdeb386
또한 Windows 표준 모드에 있는 경우 WDEB386 경우 이 메시지가 항상 나타납니다.

점 덤프 명령

개념적으로, 점 "외부 명령 또는 데이터 구조 및 Windows 환경에서 특정 작업을 작업할 명령을 명령입니다. 예를 들어, 디버거가 에서 필요한 메모리 위치를 "D" (덤프) 명령을 표시합니다 있지만 ".DG" 명령은 훨씬 HEAPWALK 응용 프로그램 같은 방법으로 Windows 글로벌 힙 정보를 표시합니다.

.Dx 명령의 대부분은 디버깅 버전의 WIN386.EXE, 필요 없는 및 표준 모드에서 사용할 수 있습니다. 이 문서에서 설명하는 명령 나머지 모드 작업을 확장 및 두 디버깅 버전을 WIN386.EXE 필요합니다. 모든 것이 제대로 설치한 후, ".?" 온라인 빠른 참조 점 명령의 도움말 명령을 제공해야 합니다.

이루어져야 합니다 한 가지 중요한 차이점은 "K" 및 ".DS" 명령을 간의 차이입니다. Windows 기반 응용 프로그램 또는 동적 연결 라이브러리 (DLL) 코드에서 디버거가 중지되면 아니라 "K" 명령을 Windows 스택을 워크 됩니다. 그러나 디버거를 통해 WIN386 코드 추적 경우 "K" 명령을 유용한 출력을 생성하지 않습니다. 이러한 이유로 WIN386 스택 표시하려면 ".DS" 명령이 제공되었습니다. "어떤 실행 알면" 중요성 다른 데모를 이것은 이 문서에서 설명한 대로.

점 VM 명령

확장된 모드 계층 Windows 디버깅하려면 원래 설계된 WDEB386, 따라서 경우가 중간에 WIN386 디버거가 중지되었습니다. 실행 Ctrl + Alt + SYS RQ 사용하여 중단되면 예를 들어, 컴퓨터를 즉시 실행 중인 명령 표시되지만 WIN386 코드에서 중단점을 대신 중지하지 않습니다. 따라서 일반 레지스터 일반적으로 드라이버 또는 응용 프로그램을 디버깅하려는 개발자가 모든 사용할 수 있는 모든 포함되어 있지 않습니다.

그러나 .Vx 명령을 사용하여 현재 가상 컴퓨터 작동 상태를 표시할 수 있습니다. 예를 들어, ".VM" 상태 플래그 표시, 내용, 현재 명령 및 현재 VM 스택 부분을 등록합니다. ".VL" 입력 시스템에서 모든 VM 목록을 생성합니다. 응용 프로그램, 개요 보기 위해 이러한 명령을 사용할 수 DLL이나 MS-DOS, BIOS 실행 상태, WIN386의 상태 반대로 수.

점 메모리 명령

.Mx 명령은 고급 정보를 메모리 상태를 표시합니다. 많은 기능을 보다 읽기 쉬운 형식으로 내부 WIN386 정보를 인쇄합니다. ".ML" 및 ".MP" 즉시 유용한 두 명령은 있습니다. 이러한 명령은 실제, 또는 그 반대로 에서 선형 주소를 변환합니다.

점 추적 명령

인터럽트 추적 정보를 유지하기 위해 ".T" 및 ".S" 명령을 제공합니다. 추적 항목을 VM 블록 주소 및 중단된 명령 주소 어떤 인터럽트를 발생한 설명합니다. 이러한 명령을 매우 유용할 즉시 현상이 생산하지 문제를 아래로 (버그) 추적할 수 있습니다.

점 장치 명령

WIN386 및 WDEB386에 대한 자체 상태 운영 정보를 표시할 수 있는 개별 VxD에 대한 기능을 제공합니다. 일반적으로 사용자가 이 정보를 사용하여 VxD .name 이름"VxD 가 이름을 위치 WDEB386 프롬프트에 입력하여 디버깅 요청할 수 있습니다. 예를 들어, .VDMAD 입력하여 가상 DMA 장치 상태에 대한 정보를 생성합니다.

점 장치 명령을 실행하기 위해 VxD "Debug_Query" 메시지를 보내려면 VMM을 발생할 수 있습니다. 실제로 많은 VxD 모든 디버깅 출력을 생성하지 않을 VxD 가 이 메시지에 대한 응답으로 수행할 필요가 없습니다. 일반적으로 이 방식으로 VxD에 의해 생성된 출력을 설명하지 않은 및 질문에서 VxD 디버깅 수단으로 제공됩니다. VxD 개발자가 가상 장치 상태를 정의하는 중요한 데이터 구조를 표시하려면 이 메커니즘을 이용하는 할 수 있습니다.

점 명령 요약

점 명령은 구역 9.6에 (페이지 9-48) "Microsoft Windows 소프트웨어 개발 키트 도구" 설명서 요약되어 있습니다. 온라인 빠른 참조 화면 함께 사용할 수 있는 ".?" 명령.

참고: A 점 명령 수는 SDK 도구를 수동 설명되어 있지 않습니다. 예를 들어, 도트 장치 명령 형식을 설명하는 있지만 특정 가상 장치에서 실제 출력이 없습니다 지정됩니다. 여러 가지 원인은 다음과 같습니다.

  • 일반적으로 점 명령에 의해 생성된 출력은 WDEB386 디버거 않지만 대신 WIN386 구성 요소에서 생성됩니다. 이러한 구성 요소가 수정되는 및 디버거를 것보다 더 동적으로 업데이트할 수 및 있으므로 이러한 구성 요소에 의해 생성된 정보를 변경할 수 있습니다.
  • VxD 자체에 대한 특정 정보를 경우가 있으며 일반적으로 일반적인 디버깅 상황에서 유용할 수 없습니다.

속성

기술 자료: 72379 - 마지막 검토: 2004년 7월 22일 목요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.0
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.1
키워드:?
kbmt KB72379 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