개발 통화 스택이란 무엇입니까? -techopedia에서 정의

통화 스택이란 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-콜 스택이란 무엇입니까?

C #에서 호출 스택은 프로그램 시작부터 현재 명령문 실행까지 런타임에 호출 된 메소드 이름 목록입니다.

호출 스택은 주로 각 활성 서브 루틴이 실행을 마치면 제어를 반환해야하는 지점을 추적하기위한 것입니다. 호출 스택은 추적 할 메소드가 둘 이상의 컨텍스트에서 호출 될 수있는 경우 애플리케이션을 디버그하는 도구 역할을합니다. 이것은 주어진 메소드를 호출하는 모든 메소드에 추적 코드를 추가하는 것보다 더 나은 대안을 형성합니다. 사용자 코드에서 예외가 발생할 때마다 CLR (공용 언어 런타임)은 호출 스택을 풀고 catch 블록을 검색하여 특정 예외 유형을 결정합니다. 적절한 처리기가 없으면 CLR이 응용 프로그램을 종료합니다. 따라서 호출 스택은 다음에 어디로 갈지 실행 포인터에 알리는 데 사용됩니다.

Techopedia는 콜 스택을 설명합니다

콜 스택은 "스택"으로 구성되며, 아이템을 후입 선출 방식으로 메모리에 저장하기위한 데이터 구조로, 서브 루틴의 호출자가 완료 후 리턴 주소를 스택 및 호출 된 서브 루틴으로 푸시합니다. 호출 주소에서 리턴 주소를 팝하여 해당 주소로 제어를 전송합니다.

C #에서 모든 응용 프로그램은 "main"메서드로 시작하여 다른 메서드를 호출합니다. 메소드에 대한 모든 호출에서 메소드는 스택 맨 위에 추가되고 호출자에게 리턴 될 때 스택에서 제거됩니다. 또한 블록에 선언 된 변수의 범위는 변수와 호출 스택이 스택에서 튀어 나올 때 실행이 블록을 떠날 때까지 값이 호출 스택의 일부로 스택에 푸시 된 시점부터 결정됩니다. 따라서 스택은 로컬 변수 (값 유형)와 호출 스택 (스택 프레임)을 유지하며 그 크기는 프로그램의 복잡성을 나타냅니다.

이 정의는 C #의 맥락에서 작성되었습니다.
통화 스택이란 무엇입니까? -techopedia에서 정의