LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for LIEF::PE::Debug:
Collaboration graph
[legend]

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 (TYPES type)
 
 Debug (const details::pe_debug &debug_s)
 
 Debug (const Debug &other)
 
Debugoperator= (const Debug &other)
 
virtual std::unique_ptr< Debugclone () const
 
uint32_t characteristics () const
 Reserved should be 0.
 
uint32_t timestamp () const
 The time and date that 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 (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
 

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
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.

POGO 

Profile Guided Optimization metadata.

REPRO 

PE determinism or reproducibility.

Member Function Documentation

◆ accept()

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

Implements LIEF::Object.


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