xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/note-freebsd-core.test (revision ab930ee7cad8b8bf7968bb8d0c0d72524e2313c4)
1## Test that note values are interpreted correctly for FreeBSD core files.
2# RUN: yaml2obj %s -o %t.o
3# RUN: llvm-readelf --notes %t.o | FileCheck %s --check-prefix=GNU --strict-whitespace
4# RUN: llvm-readobj --notes %t.o | FileCheck %s --check-prefix=LLVM --strict-whitespace
5
6--- !ELF
7FileHeader:
8  Class: ELFCLASS64
9  Data:  ELFDATA2LSB
10  Type:  ET_CORE
11Sections:
12  - Name: .note.foo
13    Type: SHT_NOTE
14    Notes:
15      - Name: FreeBSD
16        Type: NT_FREEBSD_THRMISC
17      - Name: FreeBSD
18        Type: NT_FREEBSD_PROCSTAT_PROC
19      - Name: FreeBSD
20        Type: NT_FREEBSD_PROCSTAT_FILES
21      - Name: FreeBSD
22        Type: NT_FREEBSD_PROCSTAT_VMMAP
23      - Name: FreeBSD
24        Type: NT_FREEBSD_PROCSTAT_GROUPS
25      - Name: FreeBSD
26        Type: NT_FREEBSD_PROCSTAT_UMASK
27      - Name: FreeBSD
28        Type: NT_FREEBSD_PROCSTAT_RLIMIT
29      - Name: FreeBSD
30        Type: NT_FREEBSD_PROCSTAT_OSREL
31      - Name: FreeBSD
32        Type: NT_FREEBSD_PROCSTAT_PSSTRINGS
33      - Name: FreeBSD
34        Type: NT_FREEBSD_PROCSTAT_AUXV
35      - Name: FreeBSD
36        Type: 0x12345
37  - Name:  .note.bar
38    Type:  SHT_NOTE
39    Notes:
40      - Name: FreeBSD
41        Desc: 'aabbccddeeff'
42        Type: NT_PRPSINFO
43ProgramHeaders:
44  - Type:     PT_NOTE
45    FirstSec: .note.foo
46    LastSec:  .note.foo
47  - Type:     PT_NOTE
48    FirstSec: .note.bar
49    LastSec:  .note.bar
50
51# GNU:      Displaying notes found at file offset 0x000000b0 with length 0x000000dc:
52# GNU-NEXT:   Owner                Data size 	Description
53# GNU-NEXT:   FreeBSD              0x00000000	NT_THRMISC (thrmisc structure)
54# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_PROC (proc data)
55# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_FILES (files data)
56# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_VMMAP (vmmap data)
57# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_GROUPS (groups data)
58# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_UMASK (umask data)
59# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_RLIMIT (rlimit data)
60# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_OSREL (osreldate data)
61# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_PSSTRINGS (ps_strings data)
62# GNU-NEXT:   FreeBSD              0x00000000	NT_PROCSTAT_AUXV (auxv data)
63# GNU-NEXT:   FreeBSD              0x00000000	Unknown note type: (0x00012345)
64# GNU-EMPTY:
65# GNU-NEXT: Displaying notes found at file offset 0x0000018c with length 0x0000001c:
66# GNU-NEXT:   Owner                Data size 	Description
67# GNU-NEXT:   FreeBSD              0x00000006	NT_PRPSINFO (prpsinfo structure)
68# GNU-NEXT:     description data: aa bb cc dd ee ff
69# GNU-EMPTY:
70
71# LLVM:      NoteSections [
72# LLVM-NEXT:   NoteSection {
73# LLVM-NEXT:     Name: <?>
74# LLVM-NEXT:     Offset: 0xB0
75# LLVM-NEXT:     Size: 0xDC
76# LLVM-NEXT:     Notes [
77# LLVM-NEXT:        {
78# LLVM-NEXT:            Owner: FreeBSD
79# LLVM-NEXT:            Data size: 0x0
80# LLVM-NEXT:            Type: NT_THRMISC (thrmisc structure)
81# LLVM-NEXT:        }
82# LLVM-NEXT:        {
83# LLVM-NEXT:            Owner: FreeBSD
84# LLVM-NEXT:            Data size: 0x0
85# LLVM-NEXT:            Type: NT_PROCSTAT_PROC (proc data)
86# LLVM-NEXT:        }
87# LLVM-NEXT:        {
88# LLVM-NEXT:            Owner: FreeBSD
89# LLVM-NEXT:            Data size: 0x0
90# LLVM-NEXT:            Type: NT_PROCSTAT_FILES (files data)
91# LLVM-NEXT:        }
92# LLVM-NEXT:        {
93# LLVM-NEXT:            Owner: FreeBSD
94# LLVM-NEXT:            Data size: 0x0
95# LLVM-NEXT:            Type: NT_PROCSTAT_VMMAP (vmmap data)
96# LLVM-NEXT:        }
97# LLVM-NEXT:        {
98# LLVM-NEXT:            Owner: FreeBSD
99# LLVM-NEXT:            Data size: 0x0
100# LLVM-NEXT:            Type: NT_PROCSTAT_GROUPS (groups data)
101# LLVM-NEXT:        }
102# LLVM-NEXT:        {
103# LLVM-NEXT:            Owner: FreeBSD
104# LLVM-NEXT:            Data size: 0x0
105# LLVM-NEXT:            Type: NT_PROCSTAT_UMASK (umask data)
106# LLVM-NEXT:        }
107# LLVM-NEXT:        {
108# LLVM-NEXT:            Owner: FreeBSD
109# LLVM-NEXT:            Data size: 0x0
110# LLVM-NEXT:            Type: NT_PROCSTAT_RLIMIT (rlimit data)
111# LLVM-NEXT:        }
112# LLVM-NEXT:        {
113# LLVM-NEXT:            Owner: FreeBSD
114# LLVM-NEXT:            Data size: 0x0
115# LLVM-NEXT:            Type: NT_PROCSTAT_OSREL (osreldate data)
116# LLVM-NEXT:        }
117# LLVM-NEXT:        {
118# LLVM-NEXT:            Owner: FreeBSD
119# LLVM-NEXT:            Data size: 0x0
120# LLVM-NEXT:            Type: NT_PROCSTAT_PSSTRINGS (ps_strings data)
121# LLVM-NEXT:        }
122# LLVM-NEXT:        {
123# LLVM-NEXT:            Owner: FreeBSD
124# LLVM-NEXT:            Data size: 0x0
125# LLVM-NEXT:            Type: NT_PROCSTAT_AUXV (auxv data)
126# LLVM-NEXT:        }
127# LLVM-NEXT:        {
128# LLVM-NEXT:            Owner: FreeBSD
129# LLVM-NEXT:            Data size: 0x0
130# LLVM-NEXT:            Type: Unknown (0x00012345)
131# LLVM-NEXT:        }
132# LLVM-NEXT:     ]
133# LLVM-NEXT:   }
134# LLVM-NEXT:   NoteSection {
135# LLVM-NEXT:     Name: <?>
136# LLVM-NEXT:     Offset: 0x18C
137# LLVM-NEXT:     Size: 0x1C
138# LLVM-NEXT:     Notes [
139# LLVM-NEXT:        {
140# LLVM-NEXT:            Owner: FreeBSD
141# LLVM-NEXT:            Data size: 0x6
142# LLVM-NEXT:            Type: NT_PRPSINFO (prpsinfo structure)
143# LLVM-NEXT:            Description data (
144# LLVM-NEXT:                0000: AABBCCDD EEFF                        |......|
145# LLVM-NEXT:            )
146# LLVM-NEXT:        }
147# LLVM-NEXT:    ]
148# LLVM-NEXT:   }
149# LLVM-NEXT: ]
150