LIEF: Library to Instrument Executable Formats Version 0.15.1
Loading...
Searching...
No Matches
LIEF::PE::Debug Class Reference

This class represents a generic entry in the debug data directory. For known types, this class is extended to provide a dedicated API (see: ! CodeCodeView) More...

#include <Debug.hpp>

Inheritance diagram for LIEF::PE::Debug:
Collaboration diagram for LIEF::PE::Debug:

Public Types

enum class  TYPES {
  UNKNOWN = 0 , COFF = 1 , CODEVIEW = 2 , FPO = 3 ,
  MISC = 4 , EXCEPTION = 5 , FIXUP = 6 , OMAP_TO_SRC = 7 ,
  OMAP_FROM_SRC = 8 , BORLAND = 9 , RESERVED10 = 10 , CLSID = 11 ,
  VC_FEATURE = 12 , POGO = 13 , ILTCG = 14 , MPX = 15 ,
  REPRO = 16 , EX_DLLCHARACTERISTICS = 20
}
 The entry types. More...
 
- Public Types inherited from LIEF::Object
template<class T >
using output_t = add_pointer_t<decay_t<T>>
 
template<class T >
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>
 

Public Member Functions

 Debug ()=default
 
 Debug (TYPES type)
 
 Debug (const details::pe_debug &debug_s)
 
 Debug (const Debug &other)=default
 
Debugoperator= (const Debug &other)=default
 
 ~Debug () override=default
 
virtual std::unique_ptr< Debugclone () const
 
uint32_t characteristics () const
 Reserved should be 0.
 
uint32_t timestamp () const
 The time and date when the debug data was created.
 
uint16_t major_version () const
 The major version number of the debug data format.
 
uint16_t minor_version () const
 The minor version number of the debug data format.
 
TYPES type () const
 The format DEBUG_TYPES of the debugging information.
 
uint32_t sizeof_data () const
 Size of the debug data.
 
uint32_t addressof_rawdata () const
 Address of the debug data relative to the image base.
 
uint32_t pointerto_rawdata () const
 File offset of the debug data.
 
void characteristics (uint32_t characteristics)
 
void timestamp (uint32_t timestamp)
 
void major_version (uint16_t major_version)
 
void minor_version (uint16_t minor_version)
 
void sizeof_data (uint32_t sizeof_data)
 
void addressof_rawdata (uint32_t addressof_rawdata)
 
void pointerto_rawdata (uint32_t pointerto_rawdata)
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::Object
 Object ()
 
 Object (const Object &other)
 
Objectoperator= (const Object &other)
 
template<class T >
output_t< T > as ()
 
template<class T >
output_const_t< T > as () const
 
virtual bool operator== (const Object &other) const
 
virtual bool operator!= (const Object &other) const
 
virtual ~Object ()
 

Detailed Description

This class represents a generic entry in the debug data directory. For known types, this class is extended to provide a dedicated API (see: ! CodeCodeView)

Member Enumeration Documentation

◆ TYPES

enum class LIEF::PE::Debug::TYPES
strong

The entry types.

Enumerator
UNKNOWN 
COFF 

COFF debug information.

CODEVIEW 

CodeView debug information (pdb & cie)

FPO 

Frame pointer omission information.

MISC 

CodeView Debug Information.

EXCEPTION 

A copy of .pdata section.

FIXUP 

Reserved.

OMAP_TO_SRC 

The mapping from an RVA in image to an RVA in source image.

OMAP_FROM_SRC 

The mapping from an RVA in source image to an RVA in image.

BORLAND 

Reserved for Borland.

RESERVED10 

Reserved.

CLSID 

Reserved.

VC_FEATURE 
POGO 

Profile Guided Optimization metadata.

ILTCG 
MPX 
REPRO 

PE determinism or reproducibility.

EX_DLLCHARACTERISTICS 

Constructor & Destructor Documentation

◆ Debug() [1/4]

LIEF::PE::Debug::Debug ( )
default

◆ Debug() [2/4]

LIEF::PE::Debug::Debug ( TYPES type)
inline

◆ Debug() [3/4]

LIEF::PE::Debug::Debug ( const details::pe_debug & debug_s)

◆ Debug() [4/4]

LIEF::PE::Debug::Debug ( const Debug & other)
default

◆ ~Debug()

LIEF::PE::Debug::~Debug ( )
overridedefault

Member Function Documentation

◆ accept()

void LIEF::PE::Debug::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

Reimplemented in LIEF::PE::Pogo, and LIEF::PE::Repro.

◆ addressof_rawdata() [1/2]

uint32_t LIEF::PE::Debug::addressof_rawdata ( ) const
inline

Address of the debug data relative to the image base.

◆ addressof_rawdata() [2/2]

void LIEF::PE::Debug::addressof_rawdata ( uint32_t addressof_rawdata)
inline

◆ characteristics() [1/2]

uint32_t LIEF::PE::Debug::characteristics ( ) const
inline

Reserved should be 0.

◆ characteristics() [2/2]

void LIEF::PE::Debug::characteristics ( uint32_t characteristics)
inline

◆ clone()

virtual std::unique_ptr< Debug > LIEF::PE::Debug::clone ( ) const
inlinevirtual

◆ major_version() [1/2]

uint16_t LIEF::PE::Debug::major_version ( ) const
inline

The major version number of the debug data format.

◆ major_version() [2/2]

void LIEF::PE::Debug::major_version ( uint16_t major_version)
inline

◆ minor_version() [1/2]

uint16_t LIEF::PE::Debug::minor_version ( ) const
inline

The minor version number of the debug data format.

◆ minor_version() [2/2]

void LIEF::PE::Debug::minor_version ( uint16_t minor_version)
inline

◆ operator=()

Debug & LIEF::PE::Debug::operator= ( const Debug & other)
default

◆ pointerto_rawdata() [1/2]

uint32_t LIEF::PE::Debug::pointerto_rawdata ( ) const
inline

File offset of the debug data.

◆ pointerto_rawdata() [2/2]

void LIEF::PE::Debug::pointerto_rawdata ( uint32_t pointerto_rawdata)
inline

◆ sizeof_data() [1/2]

uint32_t LIEF::PE::Debug::sizeof_data ( ) const
inline

Size of the debug data.

◆ sizeof_data() [2/2]

void LIEF::PE::Debug::sizeof_data ( uint32_t sizeof_data)
inline

◆ timestamp() [1/2]

uint32_t LIEF::PE::Debug::timestamp ( ) const
inline

The time and date when the debug data was created.

◆ timestamp() [2/2]

void LIEF::PE::Debug::timestamp ( uint32_t timestamp)
inline

◆ type()

TYPES LIEF::PE::Debug::type ( ) const
inline

The format DEBUG_TYPES of the debugging information.

Referenced by LIEF::PE::CodeView::classof(), LIEF::PE::Pogo::classof(), and LIEF::PE::Repro::classof().


The documentation for this class was generated from the following file: