다음을 통해 공유


Transact-SQL 디버거 정보

적용 대상: SQL Server

디버거가 특정 Transact-SQL 문에서 실행을 일시 중지할 때마다 여러 디버거 창을 사용하여 현재 실행 상태를 볼 수 있습니다.

디버거 창

디버거 모드에서는, 디버거가 쿼리 편집기 창 옆에 창을 엽니다. 디버거는 자기 정보를 선택한 창에 표시합니다. 각 디버거 창에는 창에 표시되는 정보 집합을 제어하기 위해 선택할 수 있는 탭이 있습니다. 호출 스택, 중단점, 예외 설정, 출력 탭은 창 하나에 포함됩니다. 조사식1, 조사식2, 조사식3, 조사식4 탭이 창 하나에 포함됩니다. 스레드로컬 창은 별도로 표시됩니다.

참고 사항

앞의 설명은 디버거 창의 기본 위치에 적용됩니다. 탭을 끌어서 한 창에서 다른 창으로 이동할 수 있고, 탭의 도킹을 해제해 선택한 탭의 새 창을 만들 수도 있습니다.

이러한 탭 또는 창의 일부는 기본적으로 활성화되어 있지 않습니다. 특정 창을 열려면 디버그 메뉴에서 을 선택한 다음 보고자 하는 창을 선택하세요.

Transact-SQL 식

식은 변수 또는 매개 변수와 같은 단일 스칼라 값으로 계산되는 Transact-SQL 절입니다. 디버거 창에는 현재 식에 할당된 데이터 값을 최대 5개 탭이나 창으로 표시할 수 있습니다. 로컬, 조사식1, 조사식2, 조사식3, 조사식4 등입니다.

지역 창에는 Transact-SQL 디버거의 현재 범위에 있는 지역 변수에 대한 정보가 표시됩니다. 로컬 창에 나열된 식 집합은 디버거가 코드의 여러 부분에서 실행될 때 변경됩니다.

네 개의 조사식 창에 표시되는 식은 제한이 없어 변수의 식별자를 간편하게 목록으로 표시할 수 있습니다. 변수에 숫자를 추가하는 등 단일 값으로 계산되는 Transact-SQL 식 또는 단일 값으로 계산되는 SELECT 문을 지정할 수 있습니다. 예를 들면 다음과 같습니다.

  • @IntegerCounter 같은 변수의 이름입니다.

  • @IntegerCounter + 1과 같은 변수에 대한 산술 연산입니다.

  • @FirstName + @LastName과 같은 두 문자 변수에 대한 문자열 연산입니다.

  • SELECT CharCol FROM MyTable WHERE PrimaryKey = 1 같은 단일 값을 반환하는 SELECT 문입니다.

조사식 창 네 개에는 선택한 변수 및 식에 관한 정보가 표시됩니다. 조사식 창에 목록으로 나열된 식 세트는 사용자가 목록에서 식을 추가하거나 삭제할 때까지 변경되지 않습니다.

조사식 창에 식을 추가하려면 조사식 창의 비어 있는 행 이름 열에 식 이름을 입력합니다. 디버그 메뉴에서 빠른 조사식를 선택하고, 식을 입력한 다음 조사식 추가를 선택해도 됩니다.

행을 마우스 오른쪽 단추로 클릭한 다음 값 편집을 선택하여 지역, 조사식 또는 간략한 조사식창에서 변수에 대한 데이터 값을 설정할 수 있습니다. 열은 로컬 창, 조사식 창 및 빠른 조사식 대화 상자에서 모두 텍스트, XML 및 HTML 데이터 시각화 도우미를 지원합니다. 시각화 도우미는 열의 오른쪽 끝에 있는 돋보기 데이터 팁으로 표시됩니다. 시각화 도우미를 사용하여 데이터 형식과 일치하는 화면에서 텍스트, XML 또는 HTML 데이터 값을 볼 수 있습니다(예: 브라우저 창에서 XML 파일 보기).

디버그 모드에서 마우스 포인터를 식별자 위로 이동하면 식 이름 및 식의 현재 값이 포함된 요약 정보 팝업 창이 표시됩니다. 자세한 내용은 요약 정보(IntelliSense)를 참조하세요.

중단점

중단점 창을 사용해 중단점을 보고 관리할 수 있습니다. 자세한 내용은 Transact-SQL 코드 단계를 참조하세요.

호출 스택

호출 스택 창에는 현재 실행 위치와 원래 쿼리 편집기 창에서 전달된 실행이 Transact-SQL 모듈(함수, 저장 프로시저 또는 트리거)을 통해 현재 실행 위치에 도달하는 방법에 대한 정보가 표시됩니다. 호출 스택 창의 각 행을 스택 프레임이라고 하며 다음 항목 중 하나를 나타냅니다.

  • 현재 실행 위치

  • 한 모듈에서 다른 모듈로의 호출입니다.

  • 편집기 창에서 Transact-SQL 모듈로의 호출

스택의 순서는 모듈을 호출한 순서와 역순입니다. 현재 실행 위치는 스택의 맨 위에 있고 기존의 호출이 맨 아래에 있습니다. 스택 프레임의 왼쪽 여백에 있는 노란색 화살표는 디버거가 실행을 일시 중지한 프레임을 식별합니다.

이름 열은 다음 정보를 기록합니다.

  • 다음 수준으로 호출되는 코드 줄을 포함하는 소스 모듈입니다.

  • 스택에서 다음 모듈을 호출한 코드 줄입니다.

  • 호출이 저장 프로시저로 이동했거나 매개 변수를 취하는 함수로 이동한 경우, 모든 매개 변수의 이름, 데이터 유형, 값이 목록에 표시됩니다.

로컬조사식, 빠른 조사식 창의 식이 현재 스택 프레임에 대하여 평가됩니다. 기본적으로 현재 스택 프레임은 디버거가 실행을 일시 중지한 스택의 맨 위 프레임입니다. 다른 스택 프레임을 현재 프레임으로 지정하면 로컬, 조사식빠른 조사식 창의 식이 새 스택 프레임에 대해 다시 평가됩니다. 프레임을 두 번 클릭하거나 프레임을 클릭하고 프레임으로 전환을 선택하여 현재 스택 프레임을 변경할 수 있습니다. 로컬, 조사식빠른 조사식 창의 식은 새 스택 프레임에 대해 재평가됩니다. 현재 스택 프레임이 스택의 최상위 프레임이 아닐 때마다 스택 프레임의 왼쪽 여백에 녹색 화살표가 표시되어 현재 스택 프레임을 나타냅니다.

스택 프레임을 마우스 오른쪽 단추로 클릭하고 원본 코드로 이동을 선택하면 해당 프레임에 대한 코드가 쿼리 편집기 창에 표시됩니다. 단, 해당 프레임이 현재 프레임으로 설정되지는 않고, 로컬, 조사식, 빠른 조사식 창의 내용은 변경되지 않습니다.

시스템 정보 및 Transact-SQL 결과

디버거는 출력 창에 해당 상태 및 이벤트 메시지를 나열합니다. 창에 디버거가 다른 프로세스에 연결될 때 또는 디버거 스레드가 종료될 때와 같은 정보가 포함됩니다.

디버그 모드에서는 쿼리 편집기에서 결과메시지 탭이 여전히 활성화되어 있습니다. 결과 탭은 디버깅 세션 동안 실행되는 Transact-SQL 문의 결과 집합을 계속 표시합니다. 메시지 탭에 계속해서 시스템 메시지가 표시됩니다. 예를 들어 영향을 받은 행 수, PRINT 및 RAISERROR 문의 출력 등이 대표적입니다.