summaryrefslogtreecommitdiffstats
path: root/lldb/test/Shell/ObjectFile/Breakpad
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/Shell/ObjectFile/Breakpad')
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-1.syms2
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-2.syms2
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/bad-module-id-3.syms2
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/discontiguous-sections.syms7
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-linux.syms6
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx-arm64e.syms3
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-macosx.syms6
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/identification-windows.syms4
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections-trailing-func.syms8
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/sections.syms12
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.syms2
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/Inputs/uuid-matching-mac.yaml59
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/breakpad-identification.test35
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/discontiguous-sections.test34
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/lit.local.cfg1
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/sections-trailing-func.test15
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/sections.test89
-rw-r--r--lldb/test/Shell/ObjectFile/Breakpad/uuid-matching-mac.test13
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]
+
+
OpenPOWER on IntegriCloud