disassemble

1) stack frame에대한 정리

jinkwon.kim 2017. 3. 11. 16:52
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