dwarfdump output with overlapping ranges

0

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,

dwarf
asked on Stack Overflow May 20, 2021 by user3523954

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0