diff options
Diffstat (limited to 'lldb/test/Shell/ObjectFile/Breakpad')
18 files changed, 300 insertions, 0 deletions
diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-1.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-1.syms new file mode 100644 index 00000000000..0241d512862 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-1.syms @@ -0,0 +1,2 @@ +MODULE Linux x86_64 E5894855+C35D+CCCCCCCCCCCCCCCCCCCC0 linux.out +PUBLIC 1000 0 _start diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-2.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-2.syms new file mode 100644 index 00000000000..4ae10438f30 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-2.syms @@ -0,0 +1,2 @@ +MODULE Linux x86_64 E5894855C35DCCCCCCCCCCCCCCCCC linux.out +PUBLIC 1000 0 _start diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-3.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-3.syms new file mode 100644 index 00000000000..2e6d72a37d5 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-3.syms @@ -0,0 +1,2 @@ +MODULE Linux x86_64 E58X4855C35DCCCCCCCCXCCCCCCCCCCC0 linux.out +PUBLIC 1000 0 _start diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/discontiguous-sections.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/discontiguous-sections.syms new file mode 100644 index 00000000000..40c94574215 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/discontiguous-sections.syms @@ -0,0 +1,7 @@ +MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 linux.out +INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3 +FILE 0 /tmp/a.c +PUBLIC 1010 0 _start +FILE 1 /tmp/b.c +STACK bogus +FILE 2 /tmp/c.c diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-linux.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-linux.syms new file mode 100644 index 00000000000..d82e30c4a05 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-linux.syms @@ -0,0 +1,6 @@ +MODULE Linux x86_64 E5894855C35DCCCCCCCCCCCCCCCCCCCC0 linux.out +INFO CODE_ID 554889E55DC3CCCCCCCCCCCCCCCCCCCC +PUBLIC 1000 0 _start +STACK CFI INIT 1000 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^ +STACK CFI 1001 $rbp: .cfa -16 + ^ .cfa: $rsp 16 + +STACK CFI 1004 .cfa: $rbp 16 + diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx-arm64e.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx-arm64e.syms new file mode 100644 index 00000000000..18090d7a0d5 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx-arm64e.syms @@ -0,0 +1,3 @@ +MODULE mac arm64e 4E11896957B3334EB03456BFCEB573760 mac.out +PUBLIC 0 0 _mh_execute_header +PUBLIC f30 0 start diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx.syms new file mode 100644 index 00000000000..56e0635e5f6 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx.syms @@ -0,0 +1,6 @@ +MODULE mac x86_64 D98C0E682089AA1BEACD6A8C1F16707B0 mac.out +PUBLIC 0 0 _mh_execute_header +PUBLIC f30 0 start +STACK CFI INIT f30 6 .cfa: $rsp 8 + .ra: .cfa -8 + ^ +STACK CFI f31 $rbp: .cfa -16 + ^ .cfa: $rsp 16 + +STACK CFI f34 .cfa: $rbp 16 + diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-windows.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-windows.syms new file mode 100644 index 00000000000..8fa5f305209 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-windows.syms @@ -0,0 +1,4 @@ +MODULE windows x86 A0C9165780B5490981A1925EA62165C01 a.pdb
+INFO CODE_ID 5C01672A4000 a.exe
+FILE 1 c:\tmp\a.cpp
+PUBLIC 1000 0 main
diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections-trailing-func.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections-trailing-func.syms new file mode 100644 index 00000000000..6176d35143c --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections-trailing-func.syms @@ -0,0 +1,8 @@ +MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 linux.out +INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3 +FILE 0 /tmp/a.c +FUNC 1010 10 0 _start +1010 4 4 0 +1014 5 5 0 +1019 5 6 0 +101e 2 7 0 diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections.syms new file mode 100644 index 00000000000..121cca439b0 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections.syms @@ -0,0 +1,12 @@ +MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 linux.out +INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3 +FILE 0 /tmp/a.c +FUNC 1010 10 0 _start +1010 4 4 0 +1014 5 5 0 +1019 5 6 0 +101e 2 7 0 +PUBLIC 1010 0 _start +STACK CFI INIT 1010 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^ +STACK CFI 1011 $rbp: .cfa -16 + ^ .cfa: $rsp 16 + +STACK CFI 1014 .cfa: $rbp 16 + diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.syms b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.syms new file mode 100644 index 00000000000..7da9264de98 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.syms @@ -0,0 +1,2 @@ +MODULE mac x86_64 A0AB76409C3B3A279E521045D84FA2DC0 a.out +FUNC f90 1b 0 main diff --git a/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.yaml b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.yaml new file mode 100644 index 00000000000..9e1af9c6e90 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.yaml @@ -0,0 +1,59 @@ +--- !mach-o +FileHeader: + magic: 0xFEEDFACF + cputype: 0x01000007 + cpusubtype: 0x80000003 + filetype: 0x00000002 + ncmds: 14 + sizeofcmds: 744 + flags: 0x00200085 + reserved: 0x00000000 +LoadCommands: + - cmd: LC_SEGMENT_64 + cmdsize: 72 + segname: __PAGEZERO + vmaddr: 0 + vmsize: 4294967296 + fileoff: 0 + filesize: 0 + maxprot: 0 + initprot: 0 + nsects: 0 + flags: 0 + - cmd: LC_SEGMENT_64 + cmdsize: 232 + segname: __TEXT + vmaddr: 4294967296 + vmsize: 4096 + fileoff: 0 + filesize: 4096 + maxprot: 7 + initprot: 5 + nsects: 2 + flags: 0 + Sections: + - sectname: __text + segname: __TEXT + addr: 0x0000000100000F90 + size: 27 + offset: 0x00000F90 + align: 4 + reloff: 0x00000000 + nreloc: 0 + flags: 0x80000400 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 + - cmd: LC_UUID + cmdsize: 24 + uuid: A0AB7640-9C3B-3A27-9E52-1045D84FA2DC + - cmd: LC_BUILD_VERSION + cmdsize: 32 + platform: 1 + minos: 658944 + sdk: 658944 + ntools: 1 + Tools: + - tool: 3 + version: 29491968 +... diff --git a/lldb/test/Shell/ObjectFile/Breakpad/breakpad-identification.test b/lldb/test/Shell/ObjectFile/Breakpad/breakpad-identification.test new file mode 100644 index 00000000000..312eb148023 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/breakpad-identification.test @@ -0,0 +1,35 @@ +RUN: lldb-test object-file %p/Inputs/identification-linux.syms | FileCheck %s --check-prefix=LINUX +RUN: lldb-test object-file %p/Inputs/identification-macosx.syms | FileCheck %s --check-prefix=MAC +RUN: lldb-test object-file %p/Inputs/identification-macosx-arm64e.syms | FileCheck %s --check-prefix=ARM64E +RUN: lldb-test object-file %p/Inputs/identification-windows.syms | FileCheck %s --check-prefix=WINDOWS +RUN: not lldb-test object-file %p/Inputs/bad-module-id-1.syms 2>&1 | FileCheck %s --check-prefix=ERROR +RUN: not lldb-test object-file %p/Inputs/bad-module-id-2.syms 2>&1 | FileCheck %s --check-prefix=ERROR +RUN: not lldb-test object-file %p/Inputs/bad-module-id-3.syms 2>&1 | FileCheck %s --check-prefix=ERROR + +LINUX: Plugin name: breakpad +LINUX: Architecture: x86_64--linux +LINUX: UUID: 554889E5-5DC3-CCCC-CCCC-CCCCCCCCCCCC +LINUX: Executable: false +LINUX: Stripped: false +LINUX: Type: debug info +LINUX: Strata: user + +MAC: Plugin name: breakpad +MAC: Architecture: x86_64--macosx +MAC: UUID: D98C0E68-2089-AA1B-EACD-6A8C1F16707B +MAC: Executable: false +MAC: Stripped: false +MAC: Type: debug info +MAC: Strata: user + +ARM64E: Architecture: aarch64--macosx + +WINDOWS: Plugin name: breakpad +WINDOWS: Architecture: i386--windows +WINDOWS: UUID: A0C91657-80B5-4909-81A1-925EA62165C0-00000001 +WINDOWS: Executable: false +WINDOWS: Stripped: false +WINDOWS: Type: debug info +WINDOWS: Strata: user + +ERROR: not recognised as an object file diff --git a/lldb/test/Shell/ObjectFile/Breakpad/discontiguous-sections.test b/lldb/test/Shell/ObjectFile/Breakpad/discontiguous-sections.test new file mode 100644 index 00000000000..6b765e0c40e --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/discontiguous-sections.test @@ -0,0 +1,34 @@ +# Test handling discontiguous sections. +RUN: lldb-test object-file %p/Inputs/discontiguous-sections.syms -contents | FileCheck %s + +CHECK: Showing 6 sections + +CHECK: ID: 0x1 +CHECK-NEXT: Name: MODULE + +CHECK: ID: 0x2 +CHECK-NEXT: Name: INFO + +CHECK: ID: 0x3 +CHECK-NEXT: Name: FILE +CHECK: File size: 16 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46494C45 2030202F 746D702F 612E630A |FILE 0 /tmp/a.c.| +CHECK-NEXT: ) + +CHECK: ID: 0x4 +CHECK-NEXT: Name: PUBLIC + +CHECK: ID: 0x5 +CHECK-NEXT: Name: FILE +CHECK: File size: 16 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46494C45 2031202F 746D702F 622E630A |FILE 1 /tmp/b.c.| +CHECK-NEXT: ) + +CHECK: ID: 0x6 +CHECK-NEXT: Name: FILE +CHECK: File size: 16 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46494C45 2032202F 746D702F 632E630A |FILE 2 /tmp/c.c.| +CHECK-NEXT: ) diff --git a/lldb/test/Shell/ObjectFile/Breakpad/lit.local.cfg b/lldb/test/Shell/ObjectFile/Breakpad/lit.local.cfg new file mode 100644 index 00000000000..df9b335dd13 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/lit.local.cfg @@ -0,0 +1 @@ +config.suffixes = ['.test'] diff --git a/lldb/test/Shell/ObjectFile/Breakpad/sections-trailing-func.test b/lldb/test/Shell/ObjectFile/Breakpad/sections-trailing-func.test new file mode 100644 index 00000000000..9ea5c9da781 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/sections-trailing-func.test @@ -0,0 +1,15 @@ +# Test handling of a (valid) breakpad file, which ends with a line without a +# recognised keyword. + +RUN: lldb-test object-file %p/Inputs/sections-trailing-func.syms -contents | FileCheck %s + +CHECK: Showing 4 sections + +CHECK: ID: 0x4 +CHECK-NEXT: Name: FUNC +CHECK: File size: 66 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46554E43 20313031 30203130 2030205F 73746172 740A3130 31302034 20342030 |FUNC 1010 10 0 _start.1010 4 4 0| +CHECK-NEXT: 0020: 0A313031 34203520 3520300A 31303139 20352036 20300A31 30316520 32203720 |.1014 5 5 0.1019 5 6 0.101e 2 7 | +CHECK-NEXT: 0040: 300A |0.| +CHECK-NEXT: ) diff --git a/lldb/test/Shell/ObjectFile/Breakpad/sections.test b/lldb/test/Shell/ObjectFile/Breakpad/sections.test new file mode 100644 index 00000000000..90f3d92643a --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/sections.test @@ -0,0 +1,89 @@ +RUN: lldb-test object-file %p/Inputs/sections.syms -contents | FileCheck %s + +CHECK: Showing 6 sections + +CHECK: Index: 0 +CHECK-NEXT: ID: 0x1 +CHECK-NEXT: Name: MODULE +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 64 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 4D4F4455 4C45204C 696E7578 20783836 5F363420 30303030 30303030 32344235 |MODULE Linux x86_64 0000000024B5| +CHECK-NEXT: 0020: 44313939 46304637 36364646 46464646 35444333 30206C69 6E75782E 6F75740A |D199F0F766FFFFFF5DC30 linux.out.| +CHECK-NEXT: ) + +CHECK: Index: 1 +CHECK-NEXT: ID: 0x2 +CHECK-NEXT: Name: INFO +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 46 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 494E464F 20434F44 455F4944 20303030 30303030 30423532 34393944 31463046 |INFO CODE_ID 00000000B52499D1F0F| +CHECK-NEXT: 0020: 37363646 46464646 46354443 330A |766FFFFFF5DC3.| +CHECK-NEXT: ) + +CHECK: Index: 2 +CHECK-NEXT: ID: 0x3 +CHECK-NEXT: Name: FILE +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 16 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46494C45 2030202F 746D702F 612E630A |FILE 0 /tmp/a.c.| +CHECK-NEXT: ) + +CHECK: Index: 3 +CHECK-NEXT: ID: 0x4 +CHECK-NEXT: Name: FUNC +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 66 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 46554E43 20313031 30203130 2030205F 73746172 740A3130 31302034 20342030 |FUNC 1010 10 0 _start.1010 4 4 0| +CHECK-NEXT: 0020: 0A313031 34203520 3520300A 31303139 20352036 20300A31 30316520 32203720 |.1014 5 5 0.1019 5 6 0.101e 2 7 | +CHECK-NEXT: 0040: 300A |0.| +CHECK-NEXT: ) + +CHECK: Index: 4 +CHECK-NEXT: ID: 0x5 +CHECK-NEXT: Name: PUBLIC +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 21 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 5055424C 49432031 30313020 30205F73 74617274 0A |PUBLIC 1010 0 _start.| +CHECK-NEXT: ) + +CHECK: Index: 5 +CHECK-NEXT: ID: 0x6 +CHECK-NEXT: Name: STACK CFI +CHECK-NEXT: Type: regular +CHECK-NEXT: Permissions: --- +CHECK-NEXT: Thread specific: no +CHECK-NEXT: VM address: 0 +CHECK-NEXT: VM size: 0 +CHECK-NEXT: File size: 136 +CHECK-NEXT: Data: ( +CHECK-NEXT: 0000: 53544143 4B204346 4920494E 49542031 30313020 3130202E 6366613A 20247273 |STACK CFI INIT 1010 10 .cfa: $rs| +CHECK-NEXT: 0020: 70203820 2B202E72 613A202E 63666120 2D38202B 205E0A53 5441434B 20434649 |p 8 + .ra: .cfa -8 + ^.STACK CFI| +CHECK-NEXT: 0040: 20313031 31202472 62703A20 2E636661 202D3136 202B205E 202E6366 613A2024 | 1011 $rbp: .cfa -16 + ^ .cfa: $| +CHECK-NEXT: 0060: 72737020 3136202B 0A535441 434B2043 46492031 30313420 2E636661 3A202472 |rsp 16 +.STACK CFI 1014 .cfa: $r| +CHECK-NEXT: 0080: 62702031 36202B0A |bp 16 +.| +CHECK-NEXT: ) diff --git a/lldb/test/Shell/ObjectFile/Breakpad/uuid-matching-mac.test b/lldb/test/Shell/ObjectFile/Breakpad/uuid-matching-mac.test new file mode 100644 index 00000000000..f2dd2e56312 --- /dev/null +++ b/lldb/test/Shell/ObjectFile/Breakpad/uuid-matching-mac.test @@ -0,0 +1,13 @@ +# RUN: yaml2obj %S/Inputs/uuid-matching-mac.yaml -o %T/uuid-matching-mac.out +# RUN: cd %S +# RUN: %lldb %T/uuid-matching-mac.out -s %s -o exit | FileCheck %s + +target symbols add Inputs/uuid-matching-mac.syms +# CHECK-LABEL: target symbols add +# CHECK: symbol file '{{.*}}uuid-matching-mac.syms' has been added to '{{.*}}uuid-matching-mac.out' + +image lookup -n main +# CHECK-LABEL: image lookup +# CHECK: Address: uuid-matching-mac.out[0x0000000100000f90] + + |