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
 |