1//===- CVDebugRecord.h ------------------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_OBJECT_CVDEBUGRECORD_H 10#define LLVM_OBJECT_CVDEBUGRECORD_H 11 12#include "llvm/Support/Endian.h" 13 14namespace llvm { 15namespace OMF { 16struct Signature { 17 enum ID : uint32_t { 18 PDB70 = 0x53445352, // RSDS 19 PDB20 = 0x3031424e, // NB10 20 CV50 = 0x3131424e, // NB11 21 CV41 = 0x3930424e, // NB09 22 }; 23 24 support::ulittle32_t CVSignature; 25 support::ulittle32_t Offset; 26}; 27} 28 29namespace codeview { 30struct PDB70DebugInfo { 31 support::ulittle32_t CVSignature; 32 uint8_t Signature[16]; 33 support::ulittle32_t Age; 34 // char PDBFileName[]; 35}; 36 37struct PDB20DebugInfo { 38 support::ulittle32_t CVSignature; 39 support::ulittle32_t Offset; 40 support::ulittle32_t Signature; 41 support::ulittle32_t Age; 42 // char PDBFileName[]; 43}; 44 45union DebugInfo { 46 struct OMF::Signature Signature; 47 struct PDB20DebugInfo PDB20; 48 struct PDB70DebugInfo PDB70; 49}; 50} 51} 52 53#endif 54 55