libabigail
Toggle main menu visibility
Loading...
Searching...
No Matches
include
abg-elf-based-reader.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2
// -*- Mode: C++ -*-
3
//
4
// Copyright (C) 2022-2026 Red Hat, Inc.
5
//
6
// Author: Dodji Seketeli
7
8
/// @file
9
///
10
/// This file contains the declarations for an elf-based. DWARF and
11
/// CTF readers can inherit this one.
12
13
14
#ifndef __ABG_ELF_BASED_READER_H__
15
#define __ABG_ELF_BASED_READER_H__
16
17
#include <memory>
18
#include <string>
19
20
#include "
abg-elf-reader.h
"
21
#include "
abg-corpus.h
"
22
23
namespace
abigail
24
{
25
26
/// The common interface of readers based on ELF.
27
///
28
/// These are for readers like DWARF and CTF readers that read debug
29
/// information describing binaries in the ELF format.
30
///
31
/// This interface extends the elf_reader::reader interface and thus
32
/// also provides facilities for reading ELF binaries.
33
class
elf_based_reader :
public
elf::reader
34
{
35
struct
priv;
36
priv* priv_;
37
38
elf_based_reader() =
delete
;
39
40
protected
:
41
42
/// Readers that implement this interface must provide a factory
43
/// method to create a reader instance as this constructor is
44
/// protected.
45
elf_based_reader(
const
std::string& elf_path,
46
const
vector<string>
&
debug_info_root_paths
,
47
environment
& env);
48
public
:
49
50
~elf_based_reader
();
51
52
virtual
void
53
initialize
(
const
std::string& elf_path,
54
const
vector<string>
&
debug_info_root_paths
);
55
56
virtual
ir::corpus_sptr
57
read_and_add_corpus_to_group
(
ir::corpus_group
& group,
58
fe_iface::status
&
status
);
59
60
virtual
void
61
initialize
(
const
string
& elf_path,
62
const
vector<string>
&
debug_info_root_paths
,
63
bool
load_all_types,
64
bool
linux_kernel_mode) = 0;
65
66
virtual
void
67
initialize
(
const
std::string&
corpus_path
);
68
};
//end class elf_based_reader
69
70
typedef
std::shared_ptr<elf_based_reader> elf_based_reader_sptr;
71
}
// namespace
72
#endif
abg-corpus.h
abg-elf-reader.h
This file contains the declarations for the fe_iface a.k.a "Front End Interface".
abigail::comparison::vector
abigail::elf::reader
This is the interface an ELF reader.
Definition
abg-elf-reader.h:63
abigail::elf::reader::debug_info_root_paths
const vector< string > & debug_info_root_paths() const
Getter of the vector of directory paths to look into for split debug information files.
Definition
abg-elf-reader.cc:458
abigail::elf_based_reader::~elf_based_reader
~elf_based_reader()
Destructor of the reader.
Definition
abg-elf-based-reader.cc:61
abigail::elf_based_reader::initialize
virtual void initialize(const std::string &elf_path, const vector< string > &debug_info_root_paths)
(re)Initialize) the resources used by the current reader.
Definition
abg-elf-based-reader.cc:74
abigail::elf_based_reader::read_and_add_corpus_to_group
virtual ir::corpus_sptr read_and_add_corpus_to_group(ir::corpus_group &group, fe_iface::status &status)
Read an ABI corpus and add it to a given corpus group.
Definition
abg-elf-based-reader.cc:107
abigail::fe_iface::status
status
The status of the fe_iface::read_corpus call.
Definition
abg-fe-iface.h:38
abigail::fe_iface::corpus_path
const std::string & corpus_path() const
Getter of the path to the file which an ABI corpus is to be created for.
Definition
abg-fe-iface.cc:107
abigail::ir::corpus_group
Abstraction of a group of corpora.
Definition
abg-corpus.h:386
abigail::ir::environment
This is an abstraction of the set of resources necessary to manage several aspects of the internal re...
Definition
abg-ir.h:148
abigail
Toplevel namespace for libabigail.
Definition
abg-comp-filter.cc:27
Generated by
1.17.0