728x90
반응형
stack frame에대한 정리
stack이란 무엇인가?
- 메모리의 스택 영역을 말한다.
frame이란 무엇인가?
- 힌 함수에서 사용되는 스택의 범위라고 할수 있다.
- 아래는 gdb를 사용해서 core파일을 stack frame 정보를 본것이다.
총 3개의 stack frame이 존재한다.(#0,#1,#2 가 frame 번호를 의미한다)
- frame 번호가 높을수록 상위 frame이라고한다.
- stack frame을 통해서 함수의 호출 순서를 알 수 있다.
gdb main core.2424
(gdb) bt
#0 0x0000003a48c47dec in vfprintf () from /lib64/libc.so.6
#1 0x0000003a48c4f14a in printf () from /lib64/libc.so.6
#2 0x00000000004005c5 in main (argc=1, argv=0x7fff20c91fe8) at main.c:12
(gdb)
stack frame의 구조?
- 스택의 구조는 아래와 같이 되어 있다.
0x000000
frame0
frame1
0xFFFFFF frame2
728x90
반응형
'disassemble' 카테고리의 다른 글
4) gdb TUI에 대해서 (0) | 2017.03.18 |
---|---|
3) hello world disassemble (0) | 2017.03.18 |
2) gdb 출력 형식 지정 (0) | 2017.03.18 |
0) disassemble의 종류 GAS / NASM (0) | 2017.03.11 |