0. 디버그
브레이크 포인트 지정 후 Ctrl + F5를 누른다.
(1) F5
다음 브레이크 포인트를 만날 때 까지 진행
(2) F10
함수 단위로 진행(함수의 내부까지 들어가지 않음)
(3) F11
코드 한 줄 씩 진행
1. 스택 프레임
함수를 호출할 때 어떤 일이 일어나는가?
함수 = [매개변수, 반환 주소값, 지역 변수]
스택에 함수를 하나씩 저장하며, 저장할 때 그 함수의 매개변수, 반환 주소값, 지역 변수를 저장한다.
(1) 함수의 매개변수를 스택에 집어넣음
(2) ebp를 스택에 넣고, ebp에 esp값을 대입함 (스택 프레임을 만듬)
(3) 함수가 사용할 만큼의 스택 영역을 esp에 지정함
(4) 스택 내에서 지역 변수를 집어넣고 함수를 계산함
(5) 계산 이후 esp를 다시 사용 이전의 메모리 영역으로 되돌림 (바이트를 더해서)
(6) 저장했던 ebp 주소를 다시 꺼내고 return을 입력해서 함수를 빠져나와 해당 주소로 돌아감
(7) 스택이 비워진 상태에서 해당 주소부터 코드를 실행함
'기초 C++ 스터디' 카테고리의 다른 글
3-4. 호출 스택 (0) | 2023.05.09 |
---|---|
3-3. 지역 변수와 값 전달 (0) | 2023.05.09 |
3-1. 함수(Function) (0) | 2023.05.09 |
2-5. 열거형(enum) (0) | 2023.05.04 |
2-4. 가위바위보 (0) | 2023.05.04 |