brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.3 KiB · 334c3e6 Raw
150 lines · plain
1## This test makes sure we can extract the instrumentation map from an2## XRay-instrumented PIE file.3 4## Generated from the following source:5## __attribute__((xray_always_instrument)) void foo() {}6## __attribute__((xray_always_instrument)) void bar() {}7## __attribute__((xray_always_instrument)) void jar() {}8## Built with the following arguments:9## -target armv7a-linux-androideabi -nostdlib -fxray-instrument -fPIC -shared10 11--- !ELF12FileHeader:13  Class:           ELFCLASS3214  Data:            ELFDATA2LSB15  Type:            ET_DYN16  Machine:         EM_ARM17  Flags:           [ EF_ARM_SOFT_FLOAT, EF_ARM_EABI_VER5 ]18  Entry:           0x00000000000012B019ProgramHeaders:20  - Type:     PT_LOAD21    Flags:    [ PF_R ]22    FirstSec: .rel.dyn23    LastSec:  .rel.dyn24    Align:    0x000000000000100025  - Type:     PT_LOAD26    Flags:    [ PF_X, PF_R ]27    FirstSec: .text28    LastSec:  .text29    VAddr:    0x00000000000012B030    Align:    0x000000000000100031  - Type:     PT_LOAD32    Flags:    [ PF_W, PF_R ]33    FirstSec: xray_instr_map34    LastSec:  xray_fn_idx35    VAddr:    0x00000000000033CC36    Align:    0x000000000000100037Sections:38  - Name:            .rel.dyn39    Type:            SHT_REL40    Flags:           [ SHF_ALLOC ]41    Address:         0x000000000000020042    Link:            .dynsym43    AddressAlign:    0x000000000000000444    Relocations:45      - Offset:          0x00000000000033CC46        Type:            R_ARM_RELATIVE47      - Offset:          0x00000000000033DC48        Type:            R_ARM_RELATIVE49      - Offset:          0x00000000000033EC50        Type:            R_ARM_RELATIVE51      - Offset:          0x00000000000033FC52        Type:            R_ARM_RELATIVE53      - Offset:          0x000000000000340C54        Type:            R_ARM_RELATIVE55      - Offset:          0x000000000000341C56        Type:            R_ARM_RELATIVE57      - Offset:          0x000000000000343058        Type:            R_ARM_RELATIVE59      - Offset:          0x000000000000343460        Type:            R_ARM_RELATIVE61      - Offset:          0x000000000000343862        Type:            R_ARM_RELATIVE63      - Offset:          0x000000000000343C64        Type:            R_ARM_RELATIVE65      - Offset:          0x000000000000344066        Type:            R_ARM_RELATIVE67      - Offset:          0x000000000000344468        Type:            R_ARM_RELATIVE69      - Offset:          0x00000000000033F070        Symbol:          _Z3barv71        Type:            R_ARM_ABS3272      - Offset:          0x000000000000340073        Symbol:          _Z3barv74        Type:            R_ARM_ABS3275      - Offset:          0x00000000000033D076        Symbol:          _Z3foov77        Type:            R_ARM_ABS3278      - Offset:          0x00000000000033E079        Symbol:          _Z3foov80        Type:            R_ARM_ABS3281      - Offset:          0x000000000000341082        Symbol:          _Z3jarv83        Type:            R_ARM_ABS3284      - Offset:          0x000000000000342085        Symbol:          _Z3jarv86        Type:            R_ARM_ABS3287  - Name:            .text88    Type:            SHT_PROGBITS89    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]90    Address:         0x00000000000012B091    AddressAlign:    0x000000000000000492    Size:            18093  - Name:            xray_instr_map94    Type:            SHT_PROGBITS95    Flags:           [ SHF_WRITE, SHF_ALLOC, SHF_LINK_ORDER ]96    Address:         0x00000000000033CC97    Link:            .text98    AddressAlign:    0x000000000000000199    Content:         B0120000000000000001000000000000CC120000000000000101000000000000EC120000000000000001000000000000081300000000000001010000000000002813000000000000000100000000000044130000000000000101000000000000100  - Name:            xray_fn_idx101    Type:            SHT_PROGBITS102    Flags:           [ SHF_WRITE, SHF_ALLOC, SHF_LINK_ORDER ]103    Address:         0x0000000000003430104    Link:            .text105    AddressAlign:    0x0000000000000008106    Content:         CC330000EC330000EC3300000C3400000C3400002C340000107DynamicSymbols:108  - Name:            _Z3barv109    Type:            STT_FUNC110    Section:         .text111    Binding:         STB_GLOBAL112    Value:           0x00000000000012EC113    Size:            0x000000000000003C114  - Name:            _Z3foov115    Type:            STT_FUNC116    Section:         .text117    Binding:         STB_GLOBAL118    Value:           0x00000000000012B0119    Size:            0x000000000000003C120  - Name:            _Z3jarv121    Type:            STT_FUNC122    Section:         .text123    Binding:         STB_GLOBAL124    Value:           0x0000000000001328125    Size:            0x000000000000003C126...127 128# RUN: yaml2obj %s -o %t.so129# RUN: llvm-xray extract %t.so -s | FileCheck %s130 131# CHECK:      ---132# CHECK-NEXT: - { id: 1, address: 0x12B0, function: 0x12B0, kind: function-enter, always-instrument: true, function-name: 'foo()' }133# CHECK-NEXT: - { id: 1, address: 0x12CC, function: 0x12B0, kind: function-exit, always-instrument: true, function-name: 'foo()' }134# CHECK-NEXT: - { id: 2, address: 0x12EC, function: 0x12EC, kind: function-enter, always-instrument: true, function-name: 'bar()' }135# CHECK-NEXT: - { id: 2, address: 0x1308, function: 0x12EC, kind: function-exit, always-instrument: true, function-name: 'bar()' }136# CHECK-NEXT: - { id: 3, address: 0x1328, function: 0x1328, kind: function-enter, always-instrument: true, function-name: 'jar()' }137# CHECK-NEXT: - { id: 3, address: 0x1344, function: 0x1328, kind: function-exit, always-instrument: true, function-name: 'jar()' }138# CHECK-NEXT: ...139 140# RUN: llvm-xray extract -s --no-demangle %t.so | FileCheck --check-prefix=MANGLED %s141 142# MANGLED:      ---143# MANGLED-NEXT: - { id: 1, address: 0x12B0, function: 0x12B0, kind: function-enter, always-instrument: true, function-name: _Z3foov }144# MANGLED-NEXT: - { id: 1, address: 0x12CC, function: 0x12B0, kind: function-exit, always-instrument: true, function-name: _Z3foov }145# MANGLED-NEXT: - { id: 2, address: 0x12EC, function: 0x12EC, kind: function-enter, always-instrument: true, function-name: _Z3barv }146# MANGLED-NEXT: - { id: 2, address: 0x1308, function: 0x12EC, kind: function-exit, always-instrument: true, function-name: _Z3barv }147# MANGLED-NEXT: - { id: 3, address: 0x1328, function: 0x1328, kind: function-enter, always-instrument: true, function-name: _Z3jarv }148# MANGLED-NEXT: - { id: 3, address: 0x1344, function: 0x1328, kind: function-exit, always-instrument: true, function-name: _Z3jarv }149# MANGLED-NEXT: ...150