Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
elfreader.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef ELFREADER_H
5#define ELFREADER_H
6
7#include <QtCore/QList>
8#include <QtCore/QString>
9#include <QtCore/QtEndian>
10
12
14{
23 Elf_PT_NUM = 8
24};
25
27{
45};
46
48{
53};
54
56{
59};
60
62{
67 Elf_ET_CORE = 4
68};
69
71{
74 Elf_EM_X86_64 = 62
75};
76
78{
79 UnknownSymbols = 0, // Unknown.
80 NoSymbols = 1, // No usable symbols.
81 LinkedSymbols = 2, // Link to symbols available.
82 BuildIdSymbols = 4, // BuildId available.
83 PlainSymbols = 8, // Ordinary symbols available.
84 FastSymbols = 16 // Dwarf index available.
85};
86
88{
89public:
97};
98
100{
101public:
107};
108
110{
111public:
113 int indexOf(const QByteArray &name) const;
114
115public:
126};
127
129{
130public:
131 explicit ElfReader(const QString &binary);
133
135 QByteArray readSection(const QByteArray &sectionName);
136 QString errorString() const { return m_errorString; }
137 QByteArray readCoreName(bool *isCore);
139
140private:
141 friend class ElfMapper;
142 Result readIt();
143
144 QString m_binary;
145 QString m_errorString;
146 ElfData m_elfData;
147};
148
150
151#endif // ELFREADER_H
ElfType elftype
Definition elfreader.h:117
DebugSymbolsType symbolsType
Definition elfreader.h:123
ElfMachine elfmachine
Definition elfreader.h:118
ElfClass elfclass
Definition elfreader.h:119
QList< ElfProgramHeader > programHeaders
Definition elfreader.h:125
QList< ElfSectionHeader > sectionHeaders
Definition elfreader.h:124
quint64 entryPoint
Definition elfreader.h:120
int indexOf(const QByteArray &name) const
QByteArray debugLink
Definition elfreader.h:121
QByteArray buildId
Definition elfreader.h:122
ElfEndian endian
Definition elfreader.h:116
QList< QByteArray > dependencies()
QString errorString() const
Definition elfreader.h:136
QByteArray readSection(const QByteArray &sectionName)
QByteArray readCoreName(bool *isCore)
ElfData readHeaders()
QByteArray name
Definition elfreader.h:90
\inmodule QtCore
Definition qbytearray.h:57
Definition qlist.h:74
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
ElfProgramHeaderType
Definition elfreader.h:14
@ Elf_PT_NULL
Definition elfreader.h:15
@ Elf_PT_DYNAMIC
Definition elfreader.h:17
@ Elf_PT_LOAD
Definition elfreader.h:16
@ Elf_PT_TLS
Definition elfreader.h:22
@ Elf_PT_NUM
Definition elfreader.h:23
@ Elf_PT_PHDR
Definition elfreader.h:21
@ Elf_PT_NOTE
Definition elfreader.h:19
@ Elf_PT_SHLIB
Definition elfreader.h:20
@ Elf_PT_INTERP
Definition elfreader.h:18
DebugSymbolsType
Definition elfreader.h:78
@ NoSymbols
Definition elfreader.h:80
@ BuildIdSymbols
Definition elfreader.h:82
@ FastSymbols
Definition elfreader.h:84
@ LinkedSymbols
Definition elfreader.h:81
@ UnknownSymbols
Definition elfreader.h:79
@ PlainSymbols
Definition elfreader.h:83
ElfEndian
Definition elfreader.h:48
@ Elf_ELFDATANONE
Definition elfreader.h:49
@ Elf_ELFDATA2MSB
Definition elfreader.h:51
@ Elf_ELFDATA2LSB
Definition elfreader.h:50
@ Elf_ELFDATANUM
Definition elfreader.h:52
ElfClass
Definition elfreader.h:56
@ Elf_ELFCLASS32
Definition elfreader.h:57
@ Elf_ELFCLASS64
Definition elfreader.h:58
ElfSectionHeaderType
Definition elfreader.h:27
@ Elf_SHT_PROGBITS
Definition elfreader.h:29
@ Elf_SHT_SYMTAB_SHNDX
Definition elfreader.h:44
@ Elf_SHT_NOBITS
Definition elfreader.h:36
@ Elf_SHT_PREINIT_ARRAY
Definition elfreader.h:42
@ Elf_SHT_GROUP
Definition elfreader.h:43
@ Elf_SHT_FINI_ARRAY
Definition elfreader.h:41
@ Elf_SHT_HASH
Definition elfreader.h:33
@ Elf_SHT_NOTE
Definition elfreader.h:35
@ Elf_SHT_STRTAB
Definition elfreader.h:31
@ Elf_SHT_DYNAMIC
Definition elfreader.h:34
@ Elf_SHT_SHLIB
Definition elfreader.h:38
@ Elf_SHT_REL
Definition elfreader.h:37
@ Elf_SHT_DYNSYM
Definition elfreader.h:39
@ Elf_SHT_RELA
Definition elfreader.h:32
@ Elf_SHT_NULL
Definition elfreader.h:28
@ Elf_SHT_INIT_ARRAY
Definition elfreader.h:40
@ Elf_SHT_SYMTAB
Definition elfreader.h:30
ElfType
Definition elfreader.h:62
@ Elf_ET_NONE
Definition elfreader.h:63
@ Elf_ET_EXEC
Definition elfreader.h:65
@ Elf_ET_CORE
Definition elfreader.h:67
@ Elf_ET_DYN
Definition elfreader.h:66
@ Elf_ET_REL
Definition elfreader.h:64
ElfMachine
Definition elfreader.h:71
@ Elf_EM_386
Definition elfreader.h:72
@ Elf_EM_X86_64
Definition elfreader.h:74
@ Elf_EM_ARM
Definition elfreader.h:73
Combined button and popup list for selecting options.
GLsizei GLsizei GLenum void * binary
GLuint name
unsigned int quint32
Definition qtypes.h:45
unsigned long long quint64
Definition qtypes.h:56