다음을 통해 공유


ASP.NET 디버깅 개요

업데이트: 2007년 11월

응용 프로그램 코드에는 다양한 오류나 버그가 포함될 수 있습니다. 구문 오류는 대부분 컴파일하는 동안 catch됩니다. 그러나 코드를 디버깅해야 하는 오류 형식도 있습니다. 즉, 실행하는 동안 코드를 검사하여 실행 경로와 데이터가 정확한지 유효성을 확인해야 합니다.

이 항목에서는 Windows SDK(소프트웨어 개발 키트)에서 디버거를 사용하여 ASP.NET 웹 페이지의 오류를 찾는 방법에 대해 설명합니다.

배경

응용 프로그램 코드에는 다양한 형식의 오류 또는 버그가 포함될 수 있습니다. 대부분의 구문 오류는 컴파일하는 동안 catch됩니다. 그러나 코드를 디버깅해야 하는 오류 형식도 있습니다. 즉, 실행하는 동안 코드를 검사하여 실행 경로와 데이터가 정확한지 유효성을 확인해야 합니다. 자세한 내용은 응용 프로그램 디버깅 및 프로파일링을 참조하십시오.

Windows SDK(소프트웨어 개발 키트)에는 실행하는 동안 응용 프로그램을 검사할 수 있는 비주얼 디버거 도구가 포함되어 있습니다. 이 도구는 %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe입니다. 디버거를 사용하면 각 문을 단계별로 실행하고 각 변수의 데이터를 검토하여 응용 프로그램의 동작 방식을 정확하게 확인할 수 있습니다. 비주얼 디버거를 사용하려면 디버거를 연 다음, ASP.NET 응용 프로그램의 페이지를 실행하는 프로세스에 연결해야 합니다. IIS(인터넷 정보 서비스) 버전 5.0과 5.1 및 IIS 5.0 응용 프로그램 모드에서 실행되는 IIS 6.0의 경우 ASP.NET 작업자 프로세스(Aspnet_wp.exe)에 디버거를 연결합니다. 작업자 프로세스 격리 모드에서 실행되는 IIS 6.0의 경우에는 스레드 풀 프로세스(W3wp.exe)에 디버거를 연결합니다. 디버거를 프로세스에 연결하면 해당 프로세스가 실행되는 동안 모든 단계를 확인할 수 있으며, 실행되는 각 코드 줄을 사용자가 검토할 수 있도록 프로세스에서 실행되는 명령이 다시 원래 코드에 매핑됩니다.

비주얼 디버거

비주얼 디버거를 사용하면 실행하는 동안 코드를 검사할 수 있으며 다음과 같이 응용 프로그램을 디버깅하는 데 유용한 기능을 활용할 수 있습니다.

  • **중단점   **중단점은 코드에서 디버거가 응용 프로그램 실행을 중지할 위치이며 이를 사용하면 응용 프로그램의 현재 데이터 상태를 검토한 다음 각 코드 줄을 단계별로 실행할 수 있습니다. 자세한 내용은 디버깅 기본 사항: 중단점을 참조하십시오.

  • 단계별 실행   중단점에서 중지한 후에는 코드를 줄 단위로 실행할 수 있습니다. 이를 코드 단계별 실행이라고도 합니다. 비주얼 디버거에는 다시 중지하기 전에 루프를 단계별로 실행하는 횟수를 지정할 수 있는 반복기를 포함하여 코드를 단계별로 실행하는 데 유용한 기능이 많이 포함되어 있습니다. 자세한 내용은 한 단계씩 코드 실행 개요를 참조하십시오.

  • 데이터 보기   비주얼 디버거에서는 응용 프로그램을 실행하는 동안 데이터를 검토하고 추적하는 데 사용할 수 있는 다양한 옵션을 제공합니다. 디버거를 사용하면 응용 프로그램이 중단 모드에서 중지되어 있는 동안 데이터를 수정한 다음 수정된 데이터가 포함된 응용 프로그램을 계속 실행할 수 있습니다. 자세한 내용은 디버거에서 데이터 보기를 참조하십시오.

참고:

웹 응용 프로그램에서는 Visual Studio 2005의 편집하며 계속하기 기능을 사용할 수 없습니다.

자세한 내용은 웹 페이지에 디버거 사용을 참조하십시오.

디버깅을 위해 ASP.NET 웹 응용 프로그램 구성

ASP.NET 웹 응용 프로그램에 대해 디버깅을 설정하려면 디버그 빌드로 컴파일하도록 응용 프로그램을 구성해야 합니다. 디버그 빌드에는 디버거에서 코드를 단계별로 실행하고 변수의 내용을 표시할 수 있도록 디버거에 필요한 정보가 포함되어 있습니다. 응용 프로그램 Web.config 파일의 Compilation 섹션에서 디버그 빌드에 대해 웹 응용 프로그램을 구성합니다. 자세한 내용은 compilation 요소(ASP.NET 설정 스키마)를 참조하십시오. 또는 단일 페이지만 디버깅하려면 디버깅할 페이지에서 @ Page 지시문에 debug=true를 추가하면 됩니다. 자세한 내용은 방법: ASP.NET 응용 프로그램에 디버깅 사용을 참조하십시오.

참고:

디버그 빌드로 컴파일된 응용 프로그램은 정식 버전 빌드로 컴파일된 경우에 비해 실행 속도가 훨씬 느립니다. 응용 프로그램을 배포하기 전에 디버그 모드를 해제해야 합니다. 또한 디버그 모드에서는 오류가 발생할 경우 스택에서 많은 정보가 노출되고 이로 인해 보안 문제가 발생할 수 있습니다.

로컬 및 원격 디버깅

IIS와 같은 웹 서버를 로컬에서 실행하는 경우 브라우저에서 페이지를 볼 수 있도록 사용자 컴퓨터에서 로컬로 실행되는 응용 프로그램을 디버깅할 수 있습니다.

웹 서버를 실행할 수 없거나 응용 프로그램을 로컬에서 사용할 수 없어서 페이지를 로컬에서 실행할 수 없는 경우에는 다른 서버에서 실행되는 응용 프로그램을 디버깅할 수 있습니다. 원격으로 디버깅하려면 원격 서버에 Visual Studio 원격 디버깅 구성 요소를 설치해야 합니다. 자세한 내용은 방법: 원격 디버깅 설정을 참조하십시오.

디버깅 권한

프로세스를 디버깅하려면 실행할 때보다 더 많은 권한이 필요합니다. 따라서 프로세스를 디버깅하려면 디버깅을 위해 응용 프로그램을 구성하는 것 외에 해당 프로세스에 연결할 수 있는 적절한 권한이 있는지도 확인해야 합니다. 사용자는 고유한 사용자 로컬 ID에서 실행되는 프로세스를 디버깅할 수 있는 권한을 가지고 있지만 다른 사용자의 프로세스는 디버깅할 수 없습니다. 관리자는 모든 프로세스를 디버깅할 수 있습니다.

원격 서버에서 디버깅하려면 디버깅할 프로세스가 실행되는 컴퓨터에 대한 관리자 권한이 필요합니다. 자세한 내용은 방법: 원격 서버에서 웹 응용 프로그램 디버깅을 참조하십시오.

클라이언트측 스크립트 디버깅

비주얼 디버거를 사용하면 서버측 응용 프로그램 디버깅뿐만 아니라 ECMAScript(JavaScript) 또는 VBScript로 작성된 클라이언트 스크립트도 디버깅할 수 있습니다. 클라이언트 스크립트 디버깅은 클라이언트측 스크립트를 사용하는 웹 서버 컨트롤이 있는 경우에 특히 유용합니다.

참고 항목

작업

방법: 원격 서버에서 웹 응용 프로그램 디버깅

방법: ASP.NET 응용 프로그램에 디버깅 사용

방법: 웹 응용 프로그램 및 웹 서비스 디버깅

개념

디버깅 기본 사항: 중단점

참조

Visual Studio 디버거의 새로운 기능

기타 리소스

ASP.NET 및 AJAX 응용 프로그램 디버깅