다음을 통해 공유


장치 디버거와 데스크톱 디버거 사이의 차이점

업데이트: 2007년 11월

장치 디버거에서는 데스크톱 디버거에서 지원하는 대부분의 기능을 지원하지만 다음과 같은 예외가 있습니다.

편집하며 계속하기 지원되지 않음

장치 디버거의 중단 모드에서는 소스를 수정한 후 작업을 계속할 수 없습니다. 디버깅하는 동안 코드를 수정하려면 디버깅을 중지하고 코드를 편집한 다음 수정된 소스 코드로 다시 시작해야 합니다. 중단 모드에서 코드를 변경하려고 하면 디버거에서 경고가 표시됩니다.

네이티브 디버거에서 함수 실행이 지원되지 않음

네이티브 장치 디버거에서는 함수 실행을 지원하지 않습니다. 따라서 함수가 있는 식을 입력하여 함수를 계산하고 결과를 반환할 수 없습니다.

관리되는 장치 디버거에서는 함수 실행을 지원합니다.

Interop 디버깅 제한

단일 디버거 인스턴스 내에서 네이티브 코드 및 관리 코드를 디버깅할 수 없습니다.

네이티브 코드와 관리 코드 또는 pInvoke를 사용하는 관리 코드가 모두 포함된 응용 프로그램을 디버깅하려면 단계별 코드 실행을 시작하려는 각 섹션에 중단점을 설정합니다. 그런 다음 관리되는 섹션과 같은 특정 섹션에 필요한 디버거를 연결합니다. 다른 디버거가 필요한 경우에는 해당 디버거를 분리하고 다른 디버거를 연결합니다. 프로그램을 단계별로 실행하기 위해 필요할 때마다 이러한 분리/연결 단계를 반복할 수 있습니다. 자세한 내용은 연습: 관리 코드와 네이티브 코드가 모두 포함된 솔루션 디버깅을 참조하십시오.

같은 프로세스에서 동시에 두 개의 디버깅 인스턴스를 사용하는 것은 현재로서는 지원되지 않습니다.

특성 기반 디버깅 지원되지 않음

현재 .NET Compact Framework에서는 특성 기반 디버깅을 지원하지 않습니다. 따라서 장치 디버거 사용자는 시각화 도우미 등에 대한 특성을 정의하는 기능을 사용할 수 없습니다.

데스크톱 디버깅 지원되지 않음

장치 디버거를 사용하여 데스크톱용으로 작성된 응용 프로그램을 디버그할 수 없습니다. 이 경우 데스크톱 디버거를 사용해야 합니다.

커널 디버깅 지원되지 않음

장치 디버거를 사용하여 커널 디버깅을 수행할 수 없습니다.

내 코드만 디버깅 지원 안 됨

내 코드만 디버깅은 사용할 수 없습니다.

런타임 디버거(Cordbg.exe) 추가 사항

런타임 디버거는 도구 공급업체 및 응용 프로그램 개발자들이 .NET Framework CLR(공용 언어 런타임)을 대상으로 하는 프로그램에서 버그를 찾아 해결할 때 사용합니다. 장치 프로젝트는 런타임 디버거에 새 명령과 새 모드 인수를 추가합니다. 다음 표에서는 Cordbg.exe 세션에서 사용되는 새 명령과 모드 인수의 구문을 보여 줍니다.

자세한 내용 및 전체 구문은 런타임 디버거(Cordbg.exe)를 참조하십시오.

명령

설명

m[ode] EmbeddedCLR {0|1}

EmbeddedCLR은 디버거를 대상 장치 프로젝트로 설정하는 모드 인수입니다. 이 설정을 제어하려면 on의 경우 1을, off의 경우 0을 지정하십시오.

conn[ect] machine_name port

원격 포함 CLR 장치에 연결합니다.

매개 변수:

Machine_name

필수적 요소. 원격 컴퓨터의 이름 또는 IP 주소입니다.

Port

필수적 요소. 원격 컴퓨터에 연결하는 데 사용할 포트입니다.

연결 문제

디버거가 실행 중인 동안 장치를 끄면 연결 오류로 인해 디버거가 닫히고, 응용 프로그램이 장치 백그라운드에서 계속 실행되고 있기 때문에 연결 오류가 발생합니다. Pocket PC의 X 단추는 스마트 최소화 기능으로, 이 단추를 누르면 응용 프로그램이 닫히지 않고 백그라운드에서 실행되도록 설정됩니다.

Pocket PC에서 백그라운드에서 실행 중인 응용 프로그램을 올바르게 닫으려면 다음 단계를 따르십시오.

시작 메뉴에서 설정을 클릭하고 시스템 탭을 클릭한 다음 메모리를 누릅니다. 실행 중인 프로그램 탭을 누른 다음 닫을 응용 프로그램을 누르고 중지를 누릅니다.

참고 항목

기타 리소스

디버거 로드맵

장치 프로젝트 디버깅