디버거가 특정 Transact-SQL 문에서 실행을 일시 중지할 때마다 다양한 디버거 창을 사용하여 현재 실행 상태를 볼 수 있습니다.
디버거 윈도우
디버거 모드에서 디버거는 주 SQL Server Management Studio 창 아래쪽에 두 개의 창을 엽니다. 디버거는 이 두 창에 모든 정보를 표시합니다. 각 디버거 창에는 창에 표시되는 정보 집합을 제어하기 위해 선택할 수 있는 탭이 있습니다. 왼쪽 디버거 창에는 로컬, Watch1, Watch2, Watch3 및 Watch4 탭이 있습니다. 오른쪽 디버거 창에는 호출 스택, 스레드, 중단점, 명령 창 및 출력 탭이 포함됩니다.
비고
이전 설명은 디버거 창의 기본 위치에 적용됩니다. 탭을 끌어 한 창에서 다른 창으로 이동하거나 탭의 도킹을 취소하여 원하는 위치에 배치할 수 있는 새 창을 만들 수 있습니다.
기본적으로 이러한 탭이나 창이 모두 활성 상태인 것은 아닙니다. 다음 방법 중 하나를 사용하여 특정 창을 열 수 있습니다.
디버그 메뉴에서 Windows를 클릭한 다음 원하는 창을 선택합니다.
디버그 도구 모음에서 중단점을 클릭한 다음 원하는 창을 선택합니다.
Transact-SQL 식
식은 변수 또는 매개변수와 같은 단일 스칼라 값으로 평가되는 Transact-SQL 구문입니다. 왼쪽 디버거 창에는 로컬, Watch1, Watch2,Watch3, Watch4 등 최대 5개의 탭 또는 창에서 식에 현재 할당된 데이터 값이 표시될 수 있습니다.
로컬 창에는 Transact-SQL 디버거의 현재 범위에 있는 지역 변수에 대한 정보가 표시됩니다. 로컬 창에 나열된 식 집합은 디버거가 코드의 여러 부분을 통해 실행될 때 변경됩니다.
QuickWatch 및 4개의 조사식 창의 식은 변수의 식별자를 나열하는 것으로만 제한되지 않습니다. 변수에 숫자를 추가하는 것과 같이 단일 값으로 계산되는 Transact-SQL 식이나 단일 값으로 계산되는 SELECT 문을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
변수의 이름(예: @IntegerCounter.)
+ 1과 같은 @IntegerCounter 변수에 대한 산술 연산입니다.
와 같은 @FirstName + @LastName두 문자 변수에 대한 문자열 작업입니다.
SELECT CharCol FROM MyTable WHERE PrimaryKey = 1과 같은 단일 값을 반환하는 SELECT 문입니다.
빠른 조사식 창을 사용하여 Transact-SQL 식의 값을 확인한 다음 해당 식을 조사식 창에 저장할 수 있습니다. QuickWatch에서 식을 선택하려면 식 상자에 식의 이름을 선택하거나 입력합니다.
4개의 감시 창에는 선택한 변수 및 식에 대한 정보가 표시됩니다. 목록에서 식을 추가하거나 삭제할 때까지 조사식 창에 나열된 식 집합은 변경되지 않습니다.
조사식 창에 식을 추가하려면 빠른 조사식 대화 상자에서 조사식 추가를 선택하거나 조사식 창에서 빈 행의 이름 열에 식의 이름을 입력할 수 있습니다.
행을 마우스 오른쪽 단추로 클릭한 다음 값 편집을 선택하여 로컬, 조사식 또는 빠른 조사식 창에서 변수에 대한 데이터 값을 설정할 수 있습니다. 로컬 창, 조사식 창 및 QuickWatch 대화 상자의 값 열은 모두 텍스트, XML 및 HTML 데이터 시각화 도우미를 지원합니다. 시각화 툴은 값 열의 오른쪽 끝에 있는 돋보기 모양의 데이터 팁으로 표시됩니다. 시각화 도우미를 사용하여 데이터 형식과 일치하는 표시에서 텍스트, XML 또는 HTML 데이터 값을 볼 수 있습니다(예: 브라우저 창에서 XML 파일 보기).
디버그 모드에서 식별자 위로 마우스 포인터를 이동하면 식의 이름과 현재 값이 포함된 빠른 정보 팝업이 표시됩니다. 자세한 내용은 빠른 정보(IntelliSense)를 참조하세요.
중단점
중단점 창을 사용하여 현재 설정된 중단점을 보고 관리할 수 있습니다. 자세한 내용은 Transact-SQL 코드 단계별 단계를 참조하세요.
호출 스택
호출 스택 창에는 현재 실행 위치와 Transact-SQL 모듈(함수, 저장 프로시저 또는 트리거)을 통해 원래 편집기 창에서 실행이 전달되어 현재 실행 위치에 도달하는 방법에 대한 정보가 표시됩니다. 호출 스택 창의 각 행을 스택 프레임이라고 하며 다음 항목 중 하나를 나타냅니다.
현재 실행 위치입니다.
한 모듈에서 다른 모듈로의 호출입니다.
편집기 창에서 Transact-SQL 모듈로의 호출입니다.
스택의 순서는 모듈이 호출된 순서와 반대입니다. 현재 실행 위치는 스택의 맨 위에 있고 맨 아래에 원래 호출이 있습니다. 스택 프레임의 왼쪽 여백에 있는 노란색 화살표는 디버거가 실행을 일시 중지한 프레임을 식별합니다.
이름 열은 다음 정보를 기록합니다.
다음 수준으로 호출되는 코드 줄을 포함하는 소스 모듈입니다.
스택에서 다음 모듈을 호출한 코드 줄입니다.
호출이 매개 변수를 사용하는 저장 프로시저 또는 함수로 이동한 경우 모든 매개 변수의 이름, 데이터 형식 및 값도 나열됩니다.
로컬, Watch, 및 QuickWatch 창의 식은 현재 스택 프레임에 대해 평가됩니다. 기본적으로 현재 스택 프레임은 디버거가 실행을 일시 중지한 스택의 맨 위 프레임입니다. 다른 스택 프레임을 현재 프레임으로 지정하면 로컬, 조사, 및 QuickWatch 창의 식이 새 스택 프레임에 대해 다시 평가됩니다. 프레임을 두 번 클릭하거나 프레임을 클릭하고 프레임으로 전환을 선택하여 현재 스택 프레임을 변경할 수 있습니다. 이때 로컬, 감시 및 QuickWatch (빠른 감시) 창의 식이 새 프레임에 대해 다시 평가됩니다. 현재 스택 프레임이 스택의 위쪽 프레임이 아닐 때마다 스택 프레임의 왼쪽 여백에 있는 녹색 화살표는 현재 스택 프레임을 식별합니다.
스택 프레임을 마우스 오른쪽 단추로 클릭하고 소스 코드로 이동을 선택하면 해당 프레임의 코드가 쿼리 편집기 창에 표시됩니다. 그러나 해당 프레임은 현재 프레임으로 설정되지 않으며 로컬, 조사식 및 QuickWatch 창의 내용은 변경되지 않습니다.
시스템 정보 및 Transact-SQL 결과
디버거는 출력 창에 해당 상태 및 이벤트 메시지를 나열합니다. 여기에는 디버거가 다른 프로세스에 연결되거나 디버거 스레드가 종료되는 경우와 같은 정보가 포함됩니다.
디버그 모드에서는 쿼리 편집기에서 결과 및 메시지 탭이 여전히 활성화되어 있습니다. 결과 탭은 디버깅 세션 중에 실행되는 Transact-SQL 문의 결과 집합을 계속 표시합니다. 메시지 탭은 영향을 받는 xx 행 및 PRINT 및 RAISERROR 문의 출력과 같은 시스템 메시지를 계속 표시합니다.
또한 참조하십시오
로컬 창
감시 창
빠른 워치 대화 상자
중단점 창
호출 스택 창
스레드 창
출력 창
Transact-SQL 디버거