LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::pdb::BuildMetadata Class Reference

This class wraps build metadata represented by the codeview symbols: S_COMPILE3, S_COMPILE2, S_BUILDINFO, S_ENVBLOCK More...

#include <BuildMetadata.hpp>

Classes

struct  build_info_t
 This structure represents information wrapped by the S_BUILDINFO symbol. More...
 
struct  version_t
 This structure represents a version for the backend or the frontend. More...
 

Public Types

enum class  LANG : uint8_t {
  C = 0x00 , CPP = 0x01 , FORTRAN = 0x02 , MASM = 0x03 ,
  PASCAL_LANG = 0x04 , BASIC = 0x05 , COBOL = 0x06 , LINK = 0x07 ,
  CVTRES = 0x08 , CVTPGD = 0x09 , CSHARP = 0x0a , VB = 0x0b ,
  ILASM = 0x0c , JAVA = 0x0d , JSCRIPT = 0x0e , MSIL = 0x0f ,
  HLSL = 0x10 , OBJC = 0x11 , OBJCPP = 0x12 , SWIFT = 0x13 ,
  ALIASOBJ = 0x14 , RUST = 0x15 , GO = 0x16 , UNKNOWN = 0xFF
}
 
enum class  CPU : uint16_t {
  INTEL_8080 = 0x0 , INTEL_8086 = 0x1 , INTEL_80286 = 0x2 , INTEL_80386 = 0x3 ,
  INTEL_80486 = 0x4 , PENTIUM = 0x5 , PENTIUMPRO = 0x6 , PENTIUM3 = 0x7 ,
  MIPS = 0x10 , MIPS16 = 0x11 , MIPS32 = 0x12 , MIPS64 = 0x13 ,
  MIPSI = 0x14 , MIPSII = 0x15 , MIPSIII = 0x16 , MIPSIV = 0x17 ,
  MIPSV = 0x18 , M68000 = 0x20 , M68010 = 0x21 , M68020 = 0x22 ,
  M68030 = 0x23 , M68040 = 0x24 , ALPHA = 0x30 , ALPHA_21164 = 0x31 ,
  ALPHA_21164A = 0x32 , ALPHA_21264 = 0x33 , ALPHA_21364 = 0x34 , PPC601 = 0x40 ,
  PPC603 = 0x41 , PPC604 = 0x42 , PPC620 = 0x43 , PPCFP = 0x44 ,
  PPCBE = 0x45 , SH3 = 0x50 , SH3E = 0x51 , SH3DSP = 0x52 ,
  SH4 = 0x53 , SHMEDIA = 0x54 , ARM3 = 0x60 , ARM4 = 0x61 ,
  ARM4T = 0x62 , ARM5 = 0x63 , ARM5T = 0x64 , ARM6 = 0x65 ,
  ARM_XMAC = 0x66 , ARM_WMMX = 0x67 , ARM7 = 0x68 , OMNI = 0x70 ,
  IA64 = 0x80 , IA64_2 = 0x81 , CEE = 0x90 , AM33 = 0xa0 ,
  M32R = 0xb0 , TRICORE = 0xc0 , X64 = 0xd0 , EBC = 0xe0 ,
  THUMB = 0xf0 , ARMNT = 0xf4 , ARM64 = 0xf6 , HYBRID_X86ARM64 = 0xf7 ,
  ARM64EC = 0xf8 , ARM64X = 0xf9 , D3D11_SHADER = 0x100 , UNKNOWN = 0xff
}
 

Public Member Functions

 BuildMetadata (std::unique_ptr< details::BuildMetadata > impl)
 
 ~BuildMetadata ()
 
version_t frontend_version () const
 Version of the frontend (e.g. 19.36.32537)
 
version_t backend_version () const
 Version of the backend (e.g. 14.36.32537)
 
std::string version () const
 Version of the tool as a string. For instance, Microsoft (R) CVTRES, Microsoft (R) LINK.
 
LANG language () const
 Source language.
 
CPU target_cpu () const
 Target CPU.
 
optional< build_info_tbuild_info () const
 Build information represented by the S_BUILDINFO symbol.
 
std::vector< std::string > env () const
 Environment information represented by the S_ENVBLOCK symbol.
 
std::string to_string () const
 

Detailed Description

This class wraps build metadata represented by the codeview symbols: S_COMPILE3, S_COMPILE2, S_BUILDINFO, S_ENVBLOCK

Member Enumeration Documentation

◆ CPU

enum class LIEF::pdb::BuildMetadata::CPU : uint16_t
strong
Enumerator
INTEL_8080 
INTEL_8086 
INTEL_80286 
INTEL_80386 
INTEL_80486 
PENTIUM 
PENTIUMPRO 
PENTIUM3 
MIPS 
MIPS16 
MIPS32 
MIPS64 
MIPSI 
MIPSII 
MIPSIII 
MIPSIV 
MIPSV 
M68000 
M68010 
M68020 
M68030 
M68040 
ALPHA 
ALPHA_21164 
ALPHA_21164A 
ALPHA_21264 
ALPHA_21364 
PPC601 
PPC603 
PPC604 
PPC620 
PPCFP 
PPCBE 
SH3 
SH3E 
SH3DSP 
SH4 
SHMEDIA 
ARM3 
ARM4 
ARM4T 
ARM5 
ARM5T 
ARM6 
ARM_XMAC 
ARM_WMMX 
ARM7 
OMNI 
IA64 
IA64_2 
CEE 
AM33 
M32R 
TRICORE 
X64 
EBC 
THUMB 
ARMNT 
ARM64 
HYBRID_X86ARM64 
ARM64EC 
ARM64X 
D3D11_SHADER 
UNKNOWN 

◆ LANG

enum class LIEF::pdb::BuildMetadata::LANG : uint8_t
strong
Enumerator
CPP 
FORTRAN 
MASM 
PASCAL_LANG 
BASIC 
COBOL 
LINK 
CVTRES 
CVTPGD 
CSHARP 
VB 
ILASM 
JAVA 
JSCRIPT 
MSIL 
HLSL 
OBJC 
OBJCPP 
SWIFT 
ALIASOBJ 
RUST 
GO 
UNKNOWN 

Constructor & Destructor Documentation

◆ BuildMetadata()

LIEF::pdb::BuildMetadata::BuildMetadata ( std::unique_ptr< details::BuildMetadata > impl)

◆ ~BuildMetadata()

LIEF::pdb::BuildMetadata::~BuildMetadata ( )

Member Function Documentation

◆ backend_version()

version_t LIEF::pdb::BuildMetadata::backend_version ( ) const

Version of the backend (e.g. 14.36.32537)

◆ build_info()

optional< build_info_t > LIEF::pdb::BuildMetadata::build_info ( ) const

Build information represented by the S_BUILDINFO symbol.

◆ env()

std::vector< std::string > LIEF::pdb::BuildMetadata::env ( ) const

Environment information represented by the S_ENVBLOCK symbol.

◆ frontend_version()

version_t LIEF::pdb::BuildMetadata::frontend_version ( ) const

Version of the frontend (e.g. 19.36.32537)

◆ language()

LANG LIEF::pdb::BuildMetadata::language ( ) const

Source language.

◆ target_cpu()

CPU LIEF::pdb::BuildMetadata::target_cpu ( ) const

Target CPU.

◆ to_string()

std::string LIEF::pdb::BuildMetadata::to_string ( ) const

Referenced by operator<<.

◆ version()

std::string LIEF::pdb::BuildMetadata::version ( ) const

Version of the tool as a string. For instance, Microsoft (R) CVTRES, Microsoft (R) LINK.


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