I am using the dwarfdump command with these options -fFpPEo against a binary file. The output looks like this:
fde:
< 7><0x00000000:0x00000092><clear><fde offset 0x00005d70 length: 0x00000030><eh offset none>
0x00000000: <off cfa=00(r13) >
0x00000004: <off cfa=24(r13) > <off r4=-24(cfa) > <off r5=-20(cfa) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x0000000e: <off cfa=32(r13) > <off r4=-24(cfa) > <off r5=-20(cfa) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x00000010: <off cfa=24(r7) > <off r4=-24(cfa) > <off r5=-20(cfa) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x00000034: <off cfa=24(r13) > <off r4=-24(cfa) > <off r5=-20(cfa) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x00000038: <off cfa=24(r13) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x0000003c: <off cfa=24(r13) > <off r8=-8(cfa) > <off r14=-4(cfa) >
0x00000042: <off cfa=24(r7) > <off r4=-24(cfa) > <off r5=-20(cfa) > <off r6=-16(cfa) > <off r7=-12(cfa) > <off r8=-8(cfa) > <off r14=-4(cfa) >
< 7><0x00000000:0x00000034><clear><fde offset 0x00005dcc length: 0x00000020><eh offset none>
0x00000000: <off cfa=00(r13) >
0x00000004: <off cfa=16(r13) > <off r3=-16(cfa) > <off r4=-12(cfa) > <off r7=-8(cfa) > <off r14=-4(cfa) >
0x0000000a: <off cfa=16(r7) > <off r3=-16(cfa) > <off r4=-12(cfa) > <off r7=-8(cfa) > <off r14=-4(cfa) >
0x0000002c: <off cfa=16(r13) > <off r3=-16(cfa) > <off r4=-12(cfa) > <off r7=-8(cfa) > <off r14=-4(cfa) >
0x00000030: <off cfa=16(r13) > <off r7=-8(cfa) > <off r14=-4(cfa) >
< 10><0x00000000:0x000003ac><clear><fde offset 0x000080a8 length: 0x0000003c><eh offset none>
0x00000000: <off cfa=00(r13) >
0x00000004: <off cfa=32(r13) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000012: <off cfa=304(r13) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000014: <off cfa=296(r7) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000082: <off cfa=32(r7) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000084: <off cfa=32(r13) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000088: <off cfa=32(r13) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x0000008c: <off cfa=32(r13) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000090: <off cfa=32(r13) > <off r10=-8(cfa) > <off r14=-4(cfa) >
0x00000096: <off cfa=296(r7) > <off r4=-32(cfa) > <off r5=-28(cfa) > <off r6=-24(cfa) > <off r7=-20(cfa) > <off r8=-16(cfa) > <off r9=-12(cfa) > <off r10=-8(cfa) > <off r14=-4(cfa) >
The questions is why do a get the clear function several times? Why the address ranges overlapp? How can i tell which function is actually used?
Thanks,
User contributions licensed under CC BY-SA 3.0