function_call_history: file format elf32-littlearm Disassembly of section .init: 00000380 <_init>: 380: e92d4008 push {r3, lr} 384: eb000023 bl 418 388: e8bd8008 pop {r3, pc} Disassembly of section .plt: 0000038c <.plt>: 38c: e52de004 push {lr} ; (str lr, [sp, #-4]!) 390: e59fe004 ldr lr, [pc, #4] ; 39c <.plt+0x10> 394: e08fe00e add lr, pc, lr 398: e5bef008 ldr pc, [lr, #8]! 39c: 00010c2c .word 0x00010c2c 000003a0 <__cxa_finalize@plt>: 3a0: e28fc600 add ip, pc, #0, 12 3a4: e28cca10 add ip, ip, #16, 20 ; 0x10000 3a8: e5bcfc2c ldr pc, [ip, #3116]! ; 0xc2c 000003ac <__libc_start_main@plt>: 3ac: e28fc600 add ip, pc, #0, 12 3b0: e28cca10 add ip, ip, #16, 20 ; 0x10000 3b4: e5bcfc24 ldr pc, [ip, #3108]! ; 0xc24 000003b8 <__gmon_start__@plt>: 3b8: e28fc600 add ip, pc, #0, 12 3bc: e28cca10 add ip, ip, #16, 20 ; 0x10000 3c0: e5bcfc1c ldr pc, [ip, #3100]! ; 0xc1c 000003c4 : 3c4: e28fc600 add ip, pc, #0, 12 3c8: e28cca10 add ip, ip, #16, 20 ; 0x10000 3cc: e5bcfc14 ldr pc, [ip, #3092]! ; 0xc14 Disassembly of section .text: 000003d0 <_start>: 3d0: f04f 0b00 mov.w fp, #0 3d4: f04f 0e00 mov.w lr, #0 3d8: bc02 pop {r1} 3da: 466a mov r2, sp 3dc: b404 push {r2} 3de: b401 push {r0} 3e0: f8df a024 ldr.w sl, [pc, #36] ; 408 <_start+0x38> 3e4: a308 add r3, pc, #32 ; (adr r3, 408 <_start+0x38>) 3e6: 449a add sl, r3 3e8: f8df c020 ldr.w ip, [pc, #32] ; 40c <_start+0x3c> 3ec: f85a c00c ldr.w ip, [sl, ip] 3f0: f84d cd04 str.w ip, [sp, #-4]! 3f4: 4b06 ldr r3, [pc, #24] ; (410 <_start+0x40>) 3f6: f85a 3003 ldr.w r3, [sl, r3] 3fa: 4806 ldr r0, [pc, #24] ; (414 <_start+0x44>) 3fc: f85a 0000 ldr.w r0, [sl, r0] 400: f7ff efd4 blx 3ac <__libc_start_main@plt> 404: f7ff efde blx 3c4 408: 00010bc0 .word 0x00010bc0 40c: 0000001c .word 0x0000001c 410: 0000002c .word 0x0000002c 414: 00000030 .word 0x00000030 00000418 : 418: e59f3014 ldr r3, [pc, #20] ; 434 41c: e59f2014 ldr r2, [pc, #20] ; 438 420: e08f3003 add r3, pc, r3 424: e7932002 ldr r2, [r3, r2] 428: e3520000 cmp r2, #0 42c: 012fff1e bxeq lr 430: eaffffe0 b 3b8 <__gmon_start__@plt> 434: 00010ba0 .word 0x00010ba0 438: 00000028 .word 0x00000028 0000043c : 43c: 4806 ldr r0, [pc, #24] ; (458 ) 43e: 4b07 ldr r3, [pc, #28] ; (45c ) 440: 4478 add r0, pc 442: 4a07 ldr r2, [pc, #28] ; (460 ) 444: 447b add r3, pc 446: 4283 cmp r3, r0 448: 447a add r2, pc 44a: d003 beq.n 454 44c: 4b05 ldr r3, [pc, #20] ; (464 ) 44e: 58d3 ldr r3, [r2, r3] 450: b103 cbz r3, 454 452: 4718 bx r3 454: 4770 bx lr 456: bf00 nop 458: 00010bc4 .word 0x00010bc4 45c: 00010bc0 .word 0x00010bc0 460: 00010b7c .word 0x00010b7c 464: 00000024 .word 0x00000024 00000468 : 468: 4808 ldr r0, [pc, #32] ; (48c ) 46a: 4b09 ldr r3, [pc, #36] ; (490 ) 46c: 4478 add r0, pc 46e: 4a09 ldr r2, [pc, #36] ; (494 ) 470: 447b add r3, pc 472: 1a19 subs r1, r3, r0 474: 447a add r2, pc 476: 1089 asrs r1, r1, #2 478: eb01 71d1 add.w r1, r1, r1, lsr #31 47c: 1049 asrs r1, r1, #1 47e: d003 beq.n 488 480: 4b05 ldr r3, [pc, #20] ; (498 ) 482: 58d3 ldr r3, [r2, r3] 484: b103 cbz r3, 488 486: 4718 bx r3 488: 4770 bx lr 48a: bf00 nop 48c: 00010b98 .word 0x00010b98 490: 00010b94 .word 0x00010b94 494: 00010b50 .word 0x00010b50 498: 00000034 .word 0x00000034 0000049c <__do_global_dtors_aux>: 49c: b508 push {r3, lr} 49e: 4b0a ldr r3, [pc, #40] ; (4c8 <__do_global_dtors_aux+0x2c>) 4a0: 4a0a ldr r2, [pc, #40] ; (4cc <__do_global_dtors_aux+0x30>) 4a2: 447b add r3, pc 4a4: 447a add r2, pc 4a6: 781b ldrb r3, [r3, #0] 4a8: b96b cbnz r3, 4c6 <__do_global_dtors_aux+0x2a> 4aa: 4b09 ldr r3, [pc, #36] ; (4d0 <__do_global_dtors_aux+0x34>) 4ac: 58d3 ldr r3, [r2, r3] 4ae: b123 cbz r3, 4ba <__do_global_dtors_aux+0x1e> 4b0: 4b08 ldr r3, [pc, #32] ; (4d4 <__do_global_dtors_aux+0x38>) 4b2: 447b add r3, pc 4b4: 6818 ldr r0, [r3, #0] 4b6: f7ff ef74 blx 3a0 <__cxa_finalize@plt> 4ba: f7ff ffbf bl 43c 4be: 4b06 ldr r3, [pc, #24] ; (4d8 <__do_global_dtors_aux+0x3c>) 4c0: 2201 movs r2, #1 4c2: 447b add r3, pc 4c4: 701a strb r2, [r3, #0] 4c6: bd08 pop {r3, pc} 4c8: 00010b62 .word 0x00010b62 4cc: 00010b20 .word 0x00010b20 4d0: 00000020 .word 0x00000020 4d4: 00010b4e .word 0x00010b4e 4d8: 00010b42 .word 0x00010b42 000004dc : 4dc: e7c4 b.n 468 4de: bf00 nop 000004e0 : You should have received a copy of the GNU General Public License along with this program. If not, see . */ int inc (int i) { 4e0: b480 push {r7} 4e2: b083 sub sp, #12 4e4: af00 add r7, sp, #0 4e6: 6078 str r0, [r7, #4] return i+1; 4e8: 687b ldr r3, [r7, #4] 4ea: 3301 adds r3, #1 } 4ec: 4618 mov r0, r3 4ee: 370c adds r7, #12 4f0: 46bd mov sp, r7 4f2: f85d 7b04 ldr.w r7, [sp], #4 4f6: 4770 bx lr 000004f8 : int fib (int n) { 4f8: b590 push {r4, r7, lr} 4fa: b083 sub sp, #12 4fc: af00 add r7, sp, #0 4fe: 6078 str r0, [r7, #4] if (n <= 1) 500: 687b ldr r3, [r7, #4] 502: 2b01 cmp r3, #1 504: dc01 bgt.n 50a return n; 506: 687b ldr r3, [r7, #4] 508: e00c b.n 524 return fib(n-2) + fib(n-1); 50a: 687b ldr r3, [r7, #4] 50c: 3b02 subs r3, #2 50e: 4618 mov r0, r3 510: f7ff fff2 bl 4f8 514: 4604 mov r4, r0 516: 687b ldr r3, [r7, #4] 518: 3b01 subs r3, #1 51a: 4618 mov r0, r3 51c: f7ff ffec bl 4f8 520: 4603 mov r3, r0 522: 4423 add r3, r4 } 524: 4618 mov r0, r3 526: 370c adds r7, #12 528: 46bd mov sp, r7 52a: bd90 pop {r4, r7, pc} 0000052c
: int main (void) { 52c: b580 push {r7, lr} 52e: b082 sub sp, #8 530: af00 add r7, sp, #0 int i, j; for (i = 0; i < 10; i++) 532: 2300 movs r3, #0 534: 603b str r3, [r7, #0] 536: e009 b.n 54c j += inc(i); 538: 6838 ldr r0, [r7, #0] 53a: f7ff ffd1 bl 4e0 53e: 4602 mov r2, r0 540: 687b ldr r3, [r7, #4] 542: 4413 add r3, r2 544: 607b str r3, [r7, #4] for (i = 0; i < 10; i++) 546: 683b ldr r3, [r7, #0] 548: 3301 adds r3, #1 54a: 603b str r3, [r7, #0] 54c: 683b ldr r3, [r7, #0] 54e: 2b09 cmp r3, #9 550: ddf2 ble.n 538 j += fib(3); /* bp.1 */ 552: 2003 movs r0, #3 554: f7ff ffd0 bl 4f8 558: 4602 mov r2, r0 55a: 687b ldr r3, [r7, #4] 55c: 4413 add r3, r2 55e: 607b str r3, [r7, #4] return j; /* bp.2 */ 560: 687b ldr r3, [r7, #4] } 562: 4618 mov r0, r3 564: 3708 adds r7, #8 566: 46bd mov sp, r7 568: bd80 pop {r7, pc} ... 0000056c <__libc_csu_init>: 56c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} 570: 4607 mov r7, r0 572: 4e0c ldr r6, [pc, #48] ; (5a4 <__libc_csu_init+0x38>) 574: 4688 mov r8, r1 576: 4d0c ldr r5, [pc, #48] ; (5a8 <__libc_csu_init+0x3c>) 578: 4691 mov r9, r2 57a: 447e add r6, pc 57c: f7ff ef00 blx 380 <_init> 580: 447d add r5, pc 582: 1b76 subs r6, r6, r5 584: 10b6 asrs r6, r6, #2 586: d00a beq.n 59e <__libc_csu_init+0x32> 588: 3d04 subs r5, #4 58a: 2400 movs r4, #0 58c: 3401 adds r4, #1 58e: f855 3f04 ldr.w r3, [r5, #4]! 592: 464a mov r2, r9 594: 4641 mov r1, r8 596: 4638 mov r0, r7 598: 4798 blx r3 59a: 42a6 cmp r6, r4 59c: d1f6 bne.n 58c <__libc_csu_init+0x20> 59e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} 5a2: bf00 nop 5a4: 0001094e .word 0x0001094e 5a8: 00010944 .word 0x00010944 000005ac <__libc_csu_fini>: 5ac: 4770 bx lr 5ae: bf00 nop Disassembly of section .fini: 000005b0 <_fini>: 5b0: e92d4008 push {r3, lr} 5b4: e8bd8008 pop {r3, pc}