Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void f_test(void){
- char *caller_frame_addr = (char *)__builtin_frame_address(1);
- char *tmp = caller_frame_addr;
- printf("a: %d\n", (int)*tmp);
- tmp -= sizeof(int);
- printf("b: %d\n", (int)*tmp);
- tmp -= sizeof(int);
- printf("c: %d\n", (int)*tmp);
- tmp -= sizeof(int);
- printf("d: %d\n", (int)*tmp);
- }
- int main(void){
- int a = 0, b = 1, c = 2, d = 3, e = 4, f = 5, g = 6, h = 7;
- f_test();
- return 0;
- }
- ===========================================
- Stack frame size: 48
- a: 0
- b: 0
- c: 1
- d: 2
- =============================================
- 4005b6: 55 push rbp
- 4005b7: 48 89 e5 mov rbp,rsp
- 4005ba: 48 83 ec 20 sub rsp,0x20
- 4005be: c7 45 fc 00 00 00 00 mov DWORD PTR [rbp-0x4],0x0
- 4005c5: c7 45 f8 01 00 00 00 mov DWORD PTR [rbp-0x8],0x1
- 4005cc: c7 45 f4 02 00 00 00 mov DWORD PTR [rbp-0xc],0x2
- 4005d3: c7 45 f0 03 00 00 00 mov DWORD PTR [rbp-0x10],0x3
- 4005da: c7 45 ec 04 00 00 00 mov DWORD PTR [rbp-0x14],0x4
- 4005e1: c7 45 e8 05 00 00 00 mov DWORD PTR [rbp-0x18],0x5
- 4005e8: c7 45 e4 06 00 00 00 mov DWORD PTR [rbp-0x1c],0x6
- 4005ef: c7 45 e0 07 00 00 00 mov DWORD PTR [rbp-0x20],0x7
- 4005f6: e8 02 ff ff ff call 4004fd <f_test>
- 4005fb: b8 00 00 00 00 mov eax,0x0
- 400600: c9 leave
- 400601: c3 ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement