File: dwarfdump-str-offsets-v4-invalid.s

package info (click to toggle)
llvm-toolchain-14 1%3A14.0.6-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,496,180 kB
  • sloc: cpp: 5,593,972; ansic: 986,872; asm: 585,869; python: 184,223; objc: 72,530; lisp: 31,119; f90: 27,793; javascript: 9,780; pascal: 9,762; sh: 9,482; perl: 7,468; ml: 5,432; awk: 3,523; makefile: 2,538; xml: 953; cs: 573; fortran: 567
file content (65 lines) | stat: -rw-r--r-- 1,920 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
## This tests handling invalid .debug_str_offsets.dwo sections in
## a pre-standard DWO/DWP file.

# RUN: llvm-mc -triple x86_64 %s -filetype=obj -o %t.dwo
# RUN: not llvm-dwarfdump -v %t.dwo 2>&1 | FileCheck %s

# RUN: llvm-mc -triple x86_64 %s -filetype=obj -o %t.dwp --defsym DWP=0
# RUN: not llvm-dwarfdump -v %t.dwp 2>&1 | FileCheck %s

# CHECK: error: invalid reference to or invalid content in .debug_str_offsets[.dwo]: length exceeds section size

    .section .debug_abbrev.dwo,"e",@progbits
.LAbbr:
    .byte 0x01  # Abbrev code
    .byte 0x11  # DW_TAG_compile_unit
    .byte 0x00  # DW_CHILDREN_no
    .byte 0x00  # EOM(1)
    .byte 0x00  # EOM(2)
    .byte 0x00  # EOM(3)
.LAbbrEnd:

    .section .debug_info.dwo,"e",@progbits
.LCU:
    .long .LCUEnd-.LCUVersion
.LCUVersion:
    .short 4
    .long 0
    .byte 8
    .uleb128 1
.LCUEnd:

## The section is truncated, i.e. its size is not a multiple of entry size.
    .section .debug_str_offsets.dwo,"e",@progbits
.LStrOff:
    .byte 0
.LStrOffEnd:

.ifdef DWP
    .section .debug_cu_index, "", @progbits
## Header:
    .long 2                         # Version
    .long 3                         # Section count
    .long 1                         # Unit count
    .long 2                         # Slot count
## Hash Table of Signatures:
    .quad 0x1100001122222222        # DWO Id of CU0
    .quad 0
## Parallel Table of Indexes:
    .long 1
    .long 0
## Table of Section Offsets:
## Row 0:
    .long 1                         # DW_SECT_INFO
    .long 3                         # DW_SECT_ABBREV
    .long 6                         # DW_SECT_STR_OFFSETS
## Row 1, offsets of the contribution
    .long .LCU-.debug_info.dwo
    .long .LAbbr-.debug_abbrev.dwo
    .long .LStrOff-.debug_str_offsets.dwo
## Table of Section Sizes:
## Row 1, sizes of the contribution
    .long .LCUEnd-.LCU
    .long .LAbbrEnd-.LAbbr
    .long .LStrOffEnd-.LStrOff
.endif