일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- architecture
- html
- javascript
- mysql
- php
- MacOS
- Class
- DoM
- Linux
- DS
- github
- data structure
- react
- Pipelining
- DB
- CSS
- DATAPATH
- while
- system
- XML
- for
- function
- python
- control
- Java
- instruction
- web
- computer
- Algorithm
- MIPS
- Today
- Total
목록gdb (2)
YYYEJI
스택 프레임에는 함수의 영역을 표현하는 부분이 있습니다. 함수가 시작할 때는 프롤로그(Prolog), 끝날 때에는 에필로그(Epilog)가 실행됩니다. 함수의 프롤로그와 에필로그에 대해서 자세히 알아보겠습니다. 함수의 프롤로그는 push ebp mov ebp, esp 의 구조를 가지고 있습니다. 함수 프롤로그는 함수가 호출되면 그 함수의 영역을 설정하기 위한 것입니다. 함수가 시작되면 스택프레임이 형성되고 그 시작을 함수 프롤로그라고 합니다. 함수의 에필로그는 leave (mov esp, ebp pop ebp) ret (pop eip jmp eip) 의 구조를 가지고 있습니다. 함수 에필로그는 함수가 종료되어 자신을 호출했던 함수로 돌아갈 때 스택을 정리하기 위한 것입니다. ◡̈
gdb는 디버깅(Debugging)을 목적으로 프로그램 내부의 상황을 알 수 있게 해주는 디버거(Debugger)입니다. 우선 gdb를 실습하기 전에 도커를 다운 받아주세요! [Docker] MacOS에서 Docker 시작하기 Docker(도커)란? 컨테이너 기반의 오프소스 가상화 플랫폼이다. Image(이미지)란? 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것이다. 상태값을 가지지 않고 변하지 않는다. Container( yyyeji.tistory.com 도커가 다운이 되었다면 바로 시작하도록 하겠습니다! 아래 명령어를 통해 도커 계정에 로그인합니다. $ docker run -it —name bufferoverflow ubuntu:20.04 /bin/bash 아래 명령어를 하나씩 입력해서 ..