mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[codeview] Move StreamInterface and StreamReader to libcodeview.
We have need to reuse this functionality, including making additional generic stream types that are smarter about how and when they copy memory versus referencing the original memory. So all of these structures belong in the common library rather than being pdb specific. llvm-svn: 270751
This commit is contained in:
parent
15451fb9fc
commit
493dc32ae8
@ -7,19 +7,18 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
|
||||
#ifndef LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
|
||||
#define LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamInterface.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace llvm {
|
||||
namespace pdb {
|
||||
|
||||
namespace codeview {
|
||||
class StreamReader;
|
||||
|
||||
class ByteStream : public StreamInterface {
|
||||
@ -53,4 +52,4 @@ private:
|
||||
} // end namespace pdb
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
|
||||
#endif // LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
|
43
include/llvm/DebugInfo/CodeView/CodeViewError.h
Normal file
43
include/llvm/DebugInfo/CodeView/CodeViewError.h
Normal file
@ -0,0 +1,43 @@
|
||||
//===- CodeViewError.h - Error extensions for CodeView ----------*- 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_PDB_CODEVIEW_CODEVIEWERROR_H
|
||||
#define LLVM_DEBUGINFO_PDB_CODEVIEW_CODEVIEWERROR_H
|
||||
|
||||
#include "llvm/Support/Error.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace llvm {
|
||||
namespace codeview {
|
||||
enum class cv_error_code {
|
||||
unspecified = 1,
|
||||
insufficient_buffer,
|
||||
corrupt_record,
|
||||
};
|
||||
|
||||
/// Base class for errors originating when parsing raw PDB files
|
||||
class CodeViewError : public ErrorInfo<CodeViewError> {
|
||||
public:
|
||||
static char ID;
|
||||
CodeViewError(cv_error_code C);
|
||||
CodeViewError(const std::string &Context);
|
||||
CodeViewError(cv_error_code C, const std::string &Context);
|
||||
|
||||
void log(raw_ostream &OS) const override;
|
||||
const std::string &getErrorMessage() const;
|
||||
std::error_code convertToErrorCode() const override;
|
||||
|
||||
private:
|
||||
std::string ErrMsg;
|
||||
cv_error_code Code;
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
//===- StreamInterface.h - Base interface for a PDB stream ------*- C++ -*-===//
|
||||
//===- StreamInterface.h - Base interface for a stream of data --*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
@ -7,15 +7,15 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
|
||||
#ifndef LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
|
||||
#define LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include <cstdint>
|
||||
|
||||
namespace llvm {
|
||||
namespace pdb {
|
||||
namespace codeview {
|
||||
|
||||
class StreamInterface {
|
||||
public:
|
||||
@ -29,7 +29,7 @@ public:
|
||||
virtual uint32_t getLength() const = 0;
|
||||
};
|
||||
|
||||
} // end namespace pdb
|
||||
} // end namespace codeview
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
|
||||
#endif // LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
|
@ -7,19 +7,19 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_STREAMREADER_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_STREAMREADER_H
|
||||
#ifndef LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
|
||||
#define LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamInterface.h"
|
||||
#include "llvm/Support/Endian.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace llvm {
|
||||
namespace pdb {
|
||||
class StreamInterface;
|
||||
namespace codeview {
|
||||
|
||||
class StreamReader {
|
||||
public:
|
||||
StreamReader(const StreamInterface &S);
|
||||
@ -35,7 +35,8 @@ public:
|
||||
}
|
||||
|
||||
template <typename T> Error readArray(MutableArrayRef<T> Array) {
|
||||
MutableArrayRef<uint8_t> Casted(reinterpret_cast<uint8_t*>(Array.data()), Array.size() * sizeof(T));
|
||||
MutableArrayRef<uint8_t> Casted(reinterpret_cast<uint8_t *>(Array.data()),
|
||||
Array.size() * sizeof(T));
|
||||
return readBytes(Casted);
|
||||
}
|
||||
|
||||
@ -50,7 +51,7 @@ private:
|
||||
const StreamInterface &Stream;
|
||||
uint32_t Offset;
|
||||
};
|
||||
}
|
||||
}
|
||||
} // namespace codeview
|
||||
} // namespace llvm
|
||||
|
||||
#endif
|
||||
#endif // LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
|
@ -10,8 +10,8 @@
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_PDBDBISTREAM_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_PDBDBISTREAM_H
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/PDBTypes.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
|
||||
@ -62,13 +62,13 @@ private:
|
||||
std::vector<ModuleInfoEx> ModuleInfos;
|
||||
NameHashTable ECNames;
|
||||
|
||||
ByteStream ModInfoSubstream;
|
||||
ByteStream SecContrSubstream;
|
||||
ByteStream SecMapSubstream;
|
||||
ByteStream FileInfoSubstream;
|
||||
ByteStream TypeServerMapSubstream;
|
||||
ByteStream ECSubstream;
|
||||
ByteStream DbgHeader;
|
||||
codeview::ByteStream ModInfoSubstream;
|
||||
codeview::ByteStream SecContrSubstream;
|
||||
codeview::ByteStream SecMapSubstream;
|
||||
codeview::ByteStream FileInfoSubstream;
|
||||
codeview::ByteStream TypeServerMapSubstream;
|
||||
codeview::ByteStream ECSubstream;
|
||||
codeview::ByteStream DbgHeader;
|
||||
|
||||
std::unique_ptr<HeaderInfo> Header;
|
||||
};
|
||||
|
@ -11,7 +11,7 @@
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_MAPPEDBLOCKSTREAM_H
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamInterface.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
@ -21,7 +21,7 @@ namespace pdb {
|
||||
|
||||
class PDBFile;
|
||||
|
||||
class MappedBlockStream : public StreamInterface {
|
||||
class MappedBlockStream : public codeview::StreamInterface {
|
||||
public:
|
||||
MappedBlockStream(uint32_t StreamIdx, const PDBFile &File);
|
||||
|
||||
|
@ -11,8 +11,8 @@
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_MODSTREAM_H
|
||||
|
||||
#include "llvm/ADT/iterator_range.h"
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
|
||||
@ -35,10 +35,10 @@ private:
|
||||
|
||||
MappedBlockStream Stream;
|
||||
|
||||
ByteStream SymbolsSubstream;
|
||||
ByteStream LinesSubstream;
|
||||
ByteStream C13LinesSubstream;
|
||||
ByteStream GlobalRefsSubstream;
|
||||
codeview::ByteStream SymbolsSubstream;
|
||||
codeview::ByteStream LinesSubstream;
|
||||
codeview::ByteStream C13LinesSubstream;
|
||||
codeview::ByteStream GlobalRefsSubstream;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -12,21 +12,22 @@
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
namespace pdb {
|
||||
|
||||
namespace codeview {
|
||||
class StreamReader;
|
||||
}
|
||||
namespace pdb {
|
||||
|
||||
class NameHashTable {
|
||||
public:
|
||||
NameHashTable();
|
||||
|
||||
Error load(StreamReader &Stream);
|
||||
Error load(codeview::StreamReader &Stream);
|
||||
|
||||
uint32_t getNameCount() const { return NameCount; }
|
||||
uint32_t getHashVersion() const { return HashVersion; }
|
||||
@ -38,7 +39,7 @@ public:
|
||||
ArrayRef<uint32_t> name_ids() const;
|
||||
|
||||
private:
|
||||
ByteStream NamesBuffer;
|
||||
codeview::ByteStream NamesBuffer;
|
||||
std::vector<uint32_t> IDs;
|
||||
uint32_t Signature;
|
||||
uint32_t HashVersion;
|
||||
|
@ -16,15 +16,16 @@
|
||||
#include <cstdint>
|
||||
|
||||
namespace llvm {
|
||||
namespace pdb {
|
||||
|
||||
namespace codeview {
|
||||
class StreamReader;
|
||||
}
|
||||
namespace pdb {
|
||||
|
||||
class NameMap {
|
||||
public:
|
||||
NameMap();
|
||||
|
||||
Error load(StreamReader &Stream);
|
||||
Error load(codeview::StreamReader &Stream);
|
||||
|
||||
bool tryGetValue(StringRef Name, uint32_t &Value) const;
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeStream.h"
|
||||
#include "llvm/DebugInfo/PDB/PDBTypes.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
|
||||
|
@ -10,8 +10,8 @@
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
|
||||
#include "llvm/Support/Error.h"
|
||||
@ -29,7 +29,7 @@ public:
|
||||
iterator_range<codeview::SymbolIterator> getSymbols() const;
|
||||
|
||||
private:
|
||||
ByteStream Stream;
|
||||
codeview::ByteStream Stream;
|
||||
MappedBlockStream MappedStream;
|
||||
};
|
||||
}
|
||||
|
@ -10,9 +10,9 @@
|
||||
#ifndef LLVM_DEBUGINFO_PDB_RAW_PDBTPISTREAM_H
|
||||
#define LLVM_DEBUGINFO_PDB_RAW_PDBTPISTREAM_H
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeStream.h"
|
||||
#include "llvm/DebugInfo/PDB/PDBTypes.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
|
||||
@ -47,10 +47,10 @@ private:
|
||||
MappedBlockStream Stream;
|
||||
HashFunctionType HashFunction;
|
||||
|
||||
ByteStream RecordsBuffer;
|
||||
ByteStream TypeIndexOffsetBuffer;
|
||||
ByteStream HashValuesBuffer;
|
||||
ByteStream HashAdjBuffer;
|
||||
codeview::ByteStream RecordsBuffer;
|
||||
codeview::ByteStream TypeIndexOffsetBuffer;
|
||||
codeview::ByteStream HashValuesBuffer;
|
||||
codeview::ByteStream HashAdjBuffer;
|
||||
|
||||
std::unique_ptr<HeaderInfo> Header;
|
||||
};
|
||||
|
@ -7,13 +7,13 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
#include "llvm/DebugInfo/CodeView/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/CodeViewError.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include <cstring>
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
using namespace llvm::codeview;
|
||||
|
||||
ByteStream::ByteStream() {}
|
||||
|
||||
@ -51,7 +51,7 @@ Error ByteStream::initialize(StreamReader &Reader, uint32_t Length) {
|
||||
Error ByteStream::readBytes(uint32_t Offset,
|
||||
MutableArrayRef<uint8_t> Buffer) const {
|
||||
if (Data.size() < Buffer.size() + Offset)
|
||||
return make_error<RawError>(raw_error_code::insufficient_buffer);
|
||||
return make_error<CodeViewError>(cv_error_code::insufficient_buffer);
|
||||
::memcpy(Buffer.data(), Data.data() + Offset, Buffer.size());
|
||||
return Error::success();
|
||||
}
|
||||
@ -59,7 +59,7 @@ Error ByteStream::readBytes(uint32_t Offset,
|
||||
Error ByteStream::getArrayRef(uint32_t Offset, ArrayRef<uint8_t> &Buffer,
|
||||
uint32_t Length) const {
|
||||
if (Data.size() < Length + Offset)
|
||||
return make_error<RawError>(raw_error_code::insufficient_buffer);
|
||||
return make_error<CodeViewError>(cv_error_code::insufficient_buffer);
|
||||
Buffer = Data.slice(Offset, Length);
|
||||
return Error::success();
|
||||
}
|
@ -1,10 +1,13 @@
|
||||
add_llvm_library(LLVMDebugInfoCodeView
|
||||
ByteStream.cpp
|
||||
CodeViewError.cpp
|
||||
FieldListRecordBuilder.cpp
|
||||
Line.cpp
|
||||
ListRecordBuilder.cpp
|
||||
MemoryTypeTableBuilder.cpp
|
||||
MethodListRecordBuilder.cpp
|
||||
RecordSerialization.cpp
|
||||
StreamReader.cpp
|
||||
SymbolDumper.cpp
|
||||
TypeDumper.cpp
|
||||
TypeRecord.cpp
|
||||
|
65
lib/DebugInfo/CodeView/CodeViewError.cpp
Normal file
65
lib/DebugInfo/CodeView/CodeViewError.cpp
Normal file
@ -0,0 +1,65 @@
|
||||
//===- CodeViewError.cpp - Error extensions for CodeView --------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/CodeViewError.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::codeview;
|
||||
|
||||
namespace {
|
||||
// FIXME: This class is only here to support the transition to llvm::Error. It
|
||||
// will be removed once this transition is complete. Clients should prefer to
|
||||
// deal with the Error value directly, rather than converting to error_code.
|
||||
class CodeViewErrorCategory : public std::error_category {
|
||||
public:
|
||||
const char *name() const LLVM_NOEXCEPT override { return "llvm.codeview"; }
|
||||
|
||||
std::string message(int Condition) const override {
|
||||
switch (static_cast<cv_error_code>(Condition)) {
|
||||
case cv_error_code::unspecified:
|
||||
return "An unknown error has occurred.";
|
||||
case cv_error_code::insufficient_buffer:
|
||||
return "The buffer is not large enough to read the requested number of "
|
||||
"bytes.";
|
||||
case cv_error_code::corrupt_record:
|
||||
return "The CodeView record is corrupted.";
|
||||
}
|
||||
llvm_unreachable("Unrecognized cv_error_code");
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace
|
||||
|
||||
static ManagedStatic<CodeViewErrorCategory> Category;
|
||||
|
||||
char CodeViewError::ID = 0;
|
||||
|
||||
CodeViewError::CodeViewError(cv_error_code C) : CodeViewError(C, "") {}
|
||||
|
||||
CodeViewError::CodeViewError(const std::string &Context)
|
||||
: CodeViewError(cv_error_code::unspecified, Context) {}
|
||||
|
||||
CodeViewError::CodeViewError(cv_error_code C, const std::string &Context)
|
||||
: Code(C) {
|
||||
ErrMsg = "CodeView Error: ";
|
||||
std::error_code EC = convertToErrorCode();
|
||||
if (Code != cv_error_code::unspecified)
|
||||
ErrMsg += EC.message() + " ";
|
||||
if (!Context.empty())
|
||||
ErrMsg += Context;
|
||||
}
|
||||
|
||||
void CodeViewError::log(raw_ostream &OS) const { OS << ErrMsg << "\n"; }
|
||||
|
||||
const std::string &CodeViewError::getErrorMessage() const { return ErrMsg; }
|
||||
|
||||
std::error_code CodeViewError::convertToErrorCode() const {
|
||||
return std::error_code(static_cast<int>(Code), *Category);
|
||||
}
|
@ -7,11 +7,12 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/CodeViewError.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
using namespace llvm::codeview;
|
||||
|
||||
StreamReader::StreamReader(const StreamInterface &S) : Stream(S), Offset(0) {}
|
||||
|
@ -28,7 +28,6 @@ if(HAVE_DIA_SDK)
|
||||
endif()
|
||||
|
||||
add_pdb_impl_folder(Raw
|
||||
Raw/ByteStream.cpp
|
||||
Raw/DbiStream.cpp
|
||||
Raw/InfoStream.cpp
|
||||
Raw/MappedBlockStream.cpp
|
||||
@ -40,7 +39,6 @@ add_pdb_impl_folder(Raw
|
||||
Raw/PublicsStream.cpp
|
||||
Raw/RawError.cpp
|
||||
Raw/RawSession.cpp
|
||||
Raw/StreamReader.cpp
|
||||
Raw/SymbolStream.cpp
|
||||
Raw/TpiStream.cpp)
|
||||
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
#include "llvm/DebugInfo/PDB/Raw/DbiStream.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/InfoStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/PDBFile.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
@ -80,7 +80,7 @@ DbiStream::DbiStream(PDBFile &File) : Pdb(File), Stream(StreamDBI, File) {
|
||||
DbiStream::~DbiStream() {}
|
||||
|
||||
Error DbiStream::reload() {
|
||||
StreamReader Reader(Stream);
|
||||
codeview::StreamReader Reader(Stream);
|
||||
|
||||
Header.reset(new HeaderInfo());
|
||||
|
||||
@ -170,7 +170,7 @@ Error DbiStream::reload() {
|
||||
return make_error<RawError>(raw_error_code::corrupt_file,
|
||||
"Found unexpected bytes in DBI Stream.");
|
||||
|
||||
StreamReader ECReader(ECSubstream);
|
||||
codeview::StreamReader ECReader(ECSubstream);
|
||||
if (auto EC = ECNames.load(ECReader))
|
||||
return EC;
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/InfoStream.h"
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
@ -20,7 +20,7 @@ using namespace llvm::pdb;
|
||||
InfoStream::InfoStream(PDBFile &File) : Pdb(File), Stream(StreamPDB, File) {}
|
||||
|
||||
Error InfoStream::reload() {
|
||||
StreamReader Reader(Stream);
|
||||
codeview::StreamReader Reader(Stream);
|
||||
|
||||
struct Header {
|
||||
support::ulittle32_t Version;
|
||||
|
@ -8,9 +8,10 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/DebugInfo/PDB/Raw/ModStream.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
@ -21,7 +22,7 @@ ModStream::ModStream(PDBFile &File, const ModInfo &Module)
|
||||
ModStream::~ModStream() {}
|
||||
|
||||
Error ModStream::reload() {
|
||||
StreamReader Reader(Stream);
|
||||
codeview::StreamReader Reader(Stream);
|
||||
|
||||
uint32_t SymbolSize = Mod.getSymbolDebugInfoByteSize();
|
||||
uint32_t C11Size = Mod.getLineInfoByteSize();
|
||||
|
@ -10,9 +10,8 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
#include "llvm/Support/Endian.h"
|
||||
|
||||
using namespace llvm;
|
||||
@ -78,7 +77,7 @@ static inline uint32_t HashStringV2(StringRef Str) {
|
||||
|
||||
NameHashTable::NameHashTable() : Signature(0), HashVersion(0), NameCount(0) {}
|
||||
|
||||
Error NameHashTable::load(StreamReader &Stream) {
|
||||
Error NameHashTable::load(codeview::StreamReader &Stream) {
|
||||
struct Header {
|
||||
support::ulittle32_t Signature;
|
||||
support::ulittle32_t HashVersion;
|
||||
|
@ -9,15 +9,15 @@
|
||||
|
||||
#include "llvm/DebugInfo/PDB/Raw/NameMap.h"
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
|
||||
NameMap::NameMap() {}
|
||||
|
||||
Error NameMap::load(StreamReader &Stream) {
|
||||
Error NameMap::load(codeview::StreamReader &Stream) {
|
||||
|
||||
// This is some sort of weird string-set/hash table encoded in the stream.
|
||||
// It starts with the number of bytes in the table.
|
||||
|
@ -25,12 +25,12 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/PublicsStream.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/CodeView.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/PDBFile.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/SymbolStream.h"
|
||||
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
@ -99,7 +99,7 @@ uint32_t PublicsStream::getAddrMap() const { return Header->AddrMap; }
|
||||
// we skip over the hash table which we believe contains information about
|
||||
// public symbols.
|
||||
Error PublicsStream::reload() {
|
||||
StreamReader Reader(Stream);
|
||||
codeview::StreamReader Reader(Stream);
|
||||
|
||||
// Check stream size.
|
||||
if (Reader.bytesRemaining() < sizeof(HeaderInfo) + sizeof(GSIHashHeader))
|
||||
|
@ -10,12 +10,11 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/SymbolStream.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/CodeView.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
#include "llvm/Support/Endian.h"
|
||||
|
||||
@ -29,7 +28,7 @@ SymbolStream::SymbolStream(PDBFile &File, uint32_t StreamNum)
|
||||
SymbolStream::~SymbolStream() {}
|
||||
|
||||
Error SymbolStream::reload() {
|
||||
StreamReader Reader(MappedStream);
|
||||
codeview::StreamReader Reader(MappedStream);
|
||||
|
||||
if (Stream.initialize(Reader, MappedStream.getLength()))
|
||||
return make_error<RawError>(raw_error_code::corrupt_file,
|
||||
|
@ -10,11 +10,11 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/TpiStream.h"
|
||||
|
||||
#include "llvm/DebugInfo/CodeView/CodeView.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
|
||||
#include "llvm/Support/Endian.h"
|
||||
|
||||
@ -62,7 +62,7 @@ TpiStream::TpiStream(PDBFile &File, uint32_t StreamIdx)
|
||||
TpiStream::~TpiStream() {}
|
||||
|
||||
Error TpiStream::reload() {
|
||||
StreamReader Reader(Stream);
|
||||
codeview::StreamReader Reader(Stream);
|
||||
|
||||
if (Reader.bytesRemaining() < sizeof(HeaderInfo))
|
||||
return make_error<RawError>(raw_error_code::corrupt_file,
|
||||
@ -98,7 +98,7 @@ Error TpiStream::reload() {
|
||||
|
||||
// Hash indices, hash values, etc come from the hash stream.
|
||||
MappedBlockStream HS(Header->HashStreamIndex, Pdb);
|
||||
StreamReader HSR(HS);
|
||||
codeview::StreamReader HSR(HS);
|
||||
HSR.setOffset(Header->HashValueBuffer.Off);
|
||||
if (auto EC =
|
||||
HashValuesBuffer.initialize(HSR, Header->HashValueBuffer.Length))
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Config/config.h"
|
||||
#include "llvm/DebugInfo/CodeView/StreamReader.h"
|
||||
#include "llvm/DebugInfo/CodeView/SymbolDumper.h"
|
||||
#include "llvm/DebugInfo/CodeView/TypeDumper.h"
|
||||
#include "llvm/DebugInfo/PDB/GenericError.h"
|
||||
@ -48,7 +49,6 @@
|
||||
#include "llvm/DebugInfo/PDB/Raw/PublicsStream.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawError.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/RawSession.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
|
||||
#include "llvm/DebugInfo/PDB/Raw/TpiStream.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/ConvertUTF.h"
|
||||
@ -343,7 +343,7 @@ static Error dumpStreamData(ScopedPrinter &P, PDBFile &File) {
|
||||
return Error::success();
|
||||
|
||||
MappedBlockStream S(DumpStreamNum, File);
|
||||
StreamReader R(S);
|
||||
codeview::StreamReader R(S);
|
||||
while (R.bytesRemaining() > 0) {
|
||||
ArrayRef<uint8_t> Data;
|
||||
uint32_t BytesToReadInBlock = std::min(
|
||||
@ -393,7 +393,7 @@ static Error dumpNamedStream(ScopedPrinter &P, PDBFile &File) {
|
||||
P.printNumber("Index", NameStreamIndex);
|
||||
|
||||
MappedBlockStream NameStream(NameStreamIndex, File);
|
||||
StreamReader Reader(NameStream);
|
||||
codeview::StreamReader Reader(NameStream);
|
||||
|
||||
NameHashTable NameTable;
|
||||
if (auto EC = NameTable.load(Reader))
|
||||
|
Loading…
Reference in New Issue
Block a user