Advertisement
Guest User

Untitled

a guest
Feb 1st, 2014
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void f_test(void){
  2.   char *caller_frame_addr = (char *)__builtin_frame_address(1);
  3.  
  4.   char *tmp = caller_frame_addr;
  5.  
  6.   printf("a: %d\n", (int)*tmp);
  7.   tmp -= sizeof(int);
  8.   printf("b: %d\n", (int)*tmp);
  9.   tmp -= sizeof(int);
  10.   printf("c: %d\n", (int)*tmp);
  11.   tmp -= sizeof(int);
  12.   printf("d: %d\n", (int)*tmp);
  13.  
  14. }
  15.  
  16. int main(void){
  17.   int a = 0, b = 1, c = 2, d = 3, e = 4, f = 5, g = 6, h = 7;
  18.   f_test();
  19.   return 0;
  20. }
  21.  
  22.  
  23. ===========================================
  24.  
  25. Stack frame size: 48
  26. a: 0
  27. b: 0
  28. c: 1
  29. d: 2
  30.  
  31.  
  32.  
  33. =============================================
  34.  
  35.  
  36.  
  37.   4005b6:       55                      push   rbp
  38.   4005b7:       48 89 e5                mov    rbp,rsp
  39.   4005ba:       48 83 ec 20             sub    rsp,0x20
  40.   4005be:       c7 45 fc 00 00 00 00    mov    DWORD PTR [rbp-0x4],0x0
  41.   4005c5:       c7 45 f8 01 00 00 00    mov    DWORD PTR [rbp-0x8],0x1
  42.   4005cc:       c7 45 f4 02 00 00 00    mov    DWORD PTR [rbp-0xc],0x2
  43.   4005d3:       c7 45 f0 03 00 00 00    mov    DWORD PTR [rbp-0x10],0x3
  44.   4005da:       c7 45 ec 04 00 00 00    mov    DWORD PTR [rbp-0x14],0x4
  45.   4005e1:       c7 45 e8 05 00 00 00    mov    DWORD PTR [rbp-0x18],0x5
  46.   4005e8:       c7 45 e4 06 00 00 00    mov    DWORD PTR [rbp-0x1c],0x6
  47.   4005ef:       c7 45 e0 07 00 00 00    mov    DWORD PTR [rbp-0x20],0x7
  48.   4005f6:       e8 02 ff ff ff          call   4004fd <f_test>
  49.   4005fb:       b8 00 00 00 00          mov    eax,0x0
  50.   400600:       c9                      leave  
  51.   400601:       c3                      ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement