디버거에서 호출 스택 보기 및 호출 스택 창 사용
호출 스택 창을 사용하여 현재 스택에 있는 함수 또는 프로시저 호출을 볼 수 있습니다. 호출 스택 창에는 메서드 및 함수가 호출되는 순서가 표시됩니다. 호출 스택은 앱의 실행 흐름을 검사하고 이해하는 좋은 방법입니다.
호출 스택의 일부에서 디버깅 기호를 사용할 수 없는 경우 호출 스택 창에서 호출 스택의 해당 부분에 대한 올바른 정보를 표시하지 못할 수 있습니다.
[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]
메모
표시되는 대화 상자 및 메뉴 명령은 활성 설정 또는 버전에 따라 여기에 설명된 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기 선택합니다. 모든 설정 다시 설정참조하세요. 호출 스택 창은 Eclipse와 같은 일부 IDE의 디버그 큐브 뷰와 비슷합니다.
디버거에 있는 동안 호출 스택 보기
디버깅하는 동안 디버그 메뉴에서 windows > 호출 스택 선택하거나 ctrl
+alt
+C
누릅니다.
호출 스택 창을 보여 주는 화살표는 실행 포인터가 현재 있는 스택 프레임을 식별합니다. 기본적으로 이 스택 프레임의 정보는 소스, 로컬 변수, 자동 변수, 감시및 디스어셈블리 창에 표시됩니다. 디버거 컨텍스트를 스택의 다른 프레임으로 변경하려면 다른 스택 프레임전환합니다.
호출 스택 창을 보여 주는
노란색 화살표는 실행 포인터가 현재 있는 스택 프레임을 식별합니다. 기본적으로 이 스택 프레임의 정보는 소스, 로컬 변수, 자동 변수, 조사식및 디스어셈블리 창에 표시됩니다. 디버거 컨텍스트를 스택의 다른 프레임으로 변경하려면 다른 스택 프레임전환합니다.
디버깅하는 동안 호출 스택에서 예외 스택 프레임을 볼 수도 있습니다. 자세한 내용은 예외 도우미에서 호출 스택 보기를 ,참조하세요.
호출 스택 창에 비 사용자 코드 표시
외부 또는 비사용자 코드를 표시하려면 호출 스택 창을 마우스 오른쪽 버튼으로 클릭하고, 외부 코드 표시를 선택하십시오.
외부 또는 비 사용자 코드를 표시하려면 호출 스택 도구 모음에서 외부 코드 표시 단추를 토글하거나 호출 스택 창을 마우스 오른쪽 단추로 클릭하고 외부 코드표시를 선택합니다.
사용자 코드가 아닌 코드는 내 코드 사용할 때 표시되지 않는 코드입니다. 관리 코드에서 비 사용자 코드 프레임은 기본적으로 숨겨집니다. 다음 표기법은 사용자가 아닌 코드 프레임 대신 나타납니다.
[<External Code>]
다른 스택 프레임으로 전환(디버거 컨텍스트 변경)
호출 스택 창에서 코드와 데이터를 보려는 스택 프레임을 마우스 오른쪽 단추로 클릭합니다.
또는 호출 스택 창에서 프레임을 두 번 클릭하여 해당 프레임으로 전환할 수 있습니다.
스위치를 사용하여 프레임로 전환합니다.
선택한 스택 프레임 옆에 꼬불꼬불한 꼬리를 가진 녹색 화살표가 나타납니다. 실행 포인터는 여전히 노란색 화살표로 표시된 원래 프레임에 남아 있습니다. 디버그 메뉴에서 단계 또는 계속 선택하면 선택한 프레임이 아닌 원래 프레임에서 실행이 계속됩니다.
모든 관련 스레드 보기
모든 스레드 보기 버튼을 전환하여 병렬 스택 창에서 모든 관련 스레드를 볼 수 있습니다.
호출 스택 검색
호출 스택 창의 왼쪽 위 모서리에 있는 검색 상자에 관련 검색어를 입력하여 관련 호출 스택 프레임을 검색할 수 있습니다. 관련 호출 스택 프레임이 강조 표시됩니다.
호출 스택에서 함수의 소스 코드 보기
호출 스택 창에서 소스 코드를 보려는 함수를 마우스 오른쪽 단추로 클릭하고 소스 코드로 이동선택합니다.
호출 스택 창에서 특정 함수로 실행
호출 스택 창에서 함수를 선택한 후 마우스 오른쪽 버튼을 클릭한 다음 커서까지 실행을 선택합니다.
함수 호출의 종료 지점에 중단점 설정
스택 함수 에서 중단점을 설정하세요.을 확인하세요.
다른 스레드에 대한 호출 표시
호출 스택 창을 마우스 오른쪽 단추로 클릭하고 다른 스레드로부터의 호출 포함을 선택합니다.
호출 스택을 시각적으로 추적
Visual Studio Enterprise(전용)에서는 디버깅하는 동안 호출 스택에 대한 코드 맵을 볼 수 있습니다.
호출 스택 창에서 바로 가기 메뉴를 엽니다. 코드 맵 호출 스택 표시(Ctrl + Shift + `)를 선택합니다.
자세한 내용은 디버깅하는 동안 호출 스택에서Map 메서드를 참조하세요.
호출 스택에서 함수에 대한 디스어셈블리 코드 보기(C#, C++, Visual Basic, F#)
호출 스택 창에서 디스어셈블리 코드를 보려는 함수를 마우스 오른쪽 버튼으로 클릭한 다음, 디스어셈블리로 이동을 선택합니다.
표시되는 선택적 정보 변경
호출 스택 창에서 마우스 오른쪽 버튼을 클릭한 후, <정보를 표시할지 설정하거나 해제하세요>.
자동 디컴파일 .NET 외부 코드
Visual Studio 2022 버전 17.7부터 호출 스택 창에서 외부 코드를 두 번 클릭하여 .NET 코드를 자동으로 컴파일할 수 있습니다. 자세한 내용은 디버깅하는 동안 .NET 어셈블리에서 소스 코드 생성참조하세요.
모듈에 대한 기호 로드(C#, C++, Visual Basic, F#)
호출 스택 창에서 현재 로드된 기호가 없는 코드에 대한 디버깅 기호를 로드할 수 있습니다. 이러한 기호는 Microsoft 공용 기호 서버에서 다운로드한 .NET 또는 시스템 기호 또는 디버깅 중인 컴퓨터의 기호 경로에 있는 기호일 수 있습니다.
기호(.pdb) 및 소스 파일지정을 참조하세요.
기호를 로드하려면
호출 스택 창에서 기호가 로드되지 않은 스택 프레임을 마우스 오른쪽 단추로 클릭합니다. 프레임이 흐리게 표시됩니다.
기호 로드를 가리킨 다음 microsoft 기호 서버 선택하거나(사용 가능한 경우) 기호 경로를 찾습니다.
기호 경로를 설정하려면
호출 스택 창의 바로 가기 메뉴에서 기호 설정 선택합니다.
옵션 대화 상자가 열리고 기호 페이지가 표시됩니다.
기호 설정선택합니다.
옵션 대화 상자에서 폴더 아이콘을 클릭합니다.
기호 파일(.pdb) 위치 상자에 커서가 나타납니다.
디버깅 중인 컴퓨터의 기호 위치에 디렉터리 경로 이름을 입력합니다. 로컬 및 원격 디버깅의 경우 로컬 컴퓨터의 경로입니다.
확인 선택하여 옵션 대화 상자를 닫습니다.
관련 콘텐츠
- 혼합 코드 및 누락된 정보 호출 스택 창
- 디버거 데이터 보기
- 기호(.pdb) 및 소스 파일 지정
- 중단점의 사용