mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
ae65e281f3
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
//===- ExplainOutputStyle.h ----------------------------------- *- C++ --*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TOOLS_LLVMPDBDUMP_EXPLAINOUTPUTSTYLE_H
|
|
#define LLVM_TOOLS_LLVMPDBDUMP_EXPLAINOUTPUTSTYLE_H
|
|
|
|
#include "LinePrinter.h"
|
|
#include "OutputStyle.h"
|
|
|
|
#include <string>
|
|
|
|
namespace llvm {
|
|
|
|
namespace pdb {
|
|
|
|
class DbiStream;
|
|
class InfoStream;
|
|
class InputFile;
|
|
|
|
class ExplainOutputStyle : public OutputStyle {
|
|
|
|
public:
|
|
ExplainOutputStyle(InputFile &File, uint64_t FileOffset);
|
|
|
|
Error dump() override;
|
|
|
|
private:
|
|
Error explainPdbFile();
|
|
Error explainBinaryFile();
|
|
|
|
bool explainPdbBlockStatus();
|
|
|
|
bool isPdbFpm1() const;
|
|
bool isPdbFpm2() const;
|
|
|
|
bool isPdbSuperBlock() const;
|
|
bool isPdbFpmBlock() const;
|
|
bool isPdbBlockMapBlock() const;
|
|
bool isPdbStreamDirectoryBlock() const;
|
|
Optional<uint32_t> getPdbBlockStreamIndex() const;
|
|
|
|
void explainPdbSuperBlockOffset();
|
|
void explainPdbFpmBlockOffset();
|
|
void explainPdbBlockMapOffset();
|
|
void explainPdbStreamDirectoryOffset();
|
|
void explainPdbStreamOffset(uint32_t Stream);
|
|
void explainPdbUnknownBlock();
|
|
|
|
void explainStreamOffset(DbiStream &Stream, uint32_t OffsetInStream);
|
|
void explainStreamOffset(InfoStream &Stream, uint32_t OffsetInStream);
|
|
|
|
uint32_t pdbBlockIndex() const;
|
|
uint32_t pdbBlockOffset() const;
|
|
|
|
InputFile &File;
|
|
const uint64_t FileOffset;
|
|
LinePrinter P;
|
|
};
|
|
} // namespace pdb
|
|
} // namespace llvm
|
|
|
|
#endif
|