forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CodeView: extract the OMF Directory Header
The DebugDirectory contains a pointer to the CodeView info structure which is a derivative of the OMF debug directory. The structure has evolved a bit over time, and PDB 2.0 used a slightly different definition from PDB 7.0. Both of these are specific to CodeView and not COFF. Reflect this by moving the structure definitions into the DebugInfo/CodeView headers. Define a generic DebugInfo union type that can be used to pass around a reference to the DebugInfo irrespective of the versioning. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278075 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
5 changed files
with
79 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
//===- CVDebugRecord.h ------------------------------------------*- C++ -*-===// | ||
// | ||
// The LLVM Compiler Infrastructure | ||
// | ||
// This file is distributed under the University of Illinois Open Source | ||
// License. See LICENSE.TXT for details. | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef LLVM_DEBUGINFO_CODEVIEW_CVDEBUGRECORD_H | ||
#define LLVM_DEBUGINFO_CODEVIEW_CVDEBUGRECORD_H | ||
|
||
#include "llvm/Support/Endian.h" | ||
|
||
namespace llvm { | ||
namespace OMF { | ||
struct Signature { | ||
enum ID : uint32_t { | ||
PDB70 = 0x53445352, // RSDS | ||
PDB20 = 0x3031424e, // NB10 | ||
CV50 = 0x3131424e, // NB11 | ||
CV41 = 0x3930424e, // NB09 | ||
}; | ||
|
||
support::ulittle32_t CVSignature; | ||
support::ulittle32_t Offset; | ||
}; | ||
} | ||
|
||
namespace codeview { | ||
struct PDB70DebugInfo { | ||
support::ulittle32_t CVSignature; | ||
uint8_t Signature[16]; | ||
support::ulittle32_t Age; | ||
// char PDBFileName[]; | ||
}; | ||
|
||
struct PDB20DebugInfo { | ||
support::ulittle32_t CVSignature; | ||
support::ulittle32_t Offset; | ||
support::ulittle32_t Signature; | ||
support::ulittle32_t Age; | ||
// char PDBFileName[]; | ||
}; | ||
|
||
union DebugInfo { | ||
struct OMF::Signature Signature; | ||
struct PDB20DebugInfo PDB20; | ||
struct PDB70DebugInfo PDB70; | ||
}; | ||
} | ||
} | ||
|
||
#endif | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters