• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===- CVDebugRecord.h ------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_OBJECT_CVDEBUGRECORD_H
11 #define LLVM_OBJECT_CVDEBUGRECORD_H
12 
13 #include "llvm/Support/Endian.h"
14 
15 namespace llvm {
16 namespace OMF {
17 struct Signature {
18   enum ID : uint32_t {
19     PDB70 = 0x53445352, // RSDS
20     PDB20 = 0x3031424e, // NB10
21     CV50 = 0x3131424e,  // NB11
22     CV41 = 0x3930424e,  // NB09
23   };
24 
25   support::ulittle32_t CVSignature;
26   support::ulittle32_t Offset;
27 };
28 }
29 
30 namespace codeview {
31 struct PDB70DebugInfo {
32   support::ulittle32_t CVSignature;
33   uint8_t Signature[16];
34   support::ulittle32_t Age;
35   // char PDBFileName[];
36 };
37 
38 struct PDB20DebugInfo {
39   support::ulittle32_t CVSignature;
40   support::ulittle32_t Offset;
41   support::ulittle32_t Signature;
42   support::ulittle32_t Age;
43   // char PDBFileName[];
44 };
45 
46 union DebugInfo {
47   struct OMF::Signature Signature;
48   struct PDB20DebugInfo PDB20;
49   struct PDB70DebugInfo PDB70;
50 };
51 }
52 }
53 
54 #endif
55 
56