mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
99c57c2876
This adds support for dumping a summary of module symbols and CodeView debug chunks. This option prints a table for each module of all of the symbols that occurred in the module and the number of times it occurred and total byte size. Then at the end it prints the totals for the entire file. Additionally, this patch adds the -jmc (just my code) option, which suppresses modules which are from external libraries or linker imports, so that you can focus only on the object files and libraries that originate from your own source code. llvm-svn: 311338
70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
//===- BytesOutputStyle.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_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H
|
|
#define LLVM_TOOLS_LLVMPDBDUMP_BYTESOUTPUTSTYLE_H
|
|
|
|
#include "LinePrinter.h"
|
|
#include "OutputStyle.h"
|
|
#include "StreamUtil.h"
|
|
|
|
#include "llvm/Support/Error.h"
|
|
|
|
namespace llvm {
|
|
|
|
namespace codeview {
|
|
class LazyRandomTypeCollection;
|
|
}
|
|
|
|
namespace pdb {
|
|
|
|
class PDBFile;
|
|
|
|
class BytesOutputStyle : public OutputStyle {
|
|
public:
|
|
BytesOutputStyle(PDBFile &File);
|
|
|
|
Error dump() override;
|
|
|
|
private:
|
|
void dumpNameMap();
|
|
void dumpBlockRanges(uint32_t Min, uint32_t Max);
|
|
void dumpByteRanges(uint32_t Min, uint32_t Max);
|
|
void dumpFpm();
|
|
void dumpStreamBytes();
|
|
|
|
void dumpSectionContributions();
|
|
void dumpSectionMap();
|
|
void dumpModuleInfos();
|
|
void dumpFileInfo();
|
|
void dumpTypeServerMap();
|
|
void dumpECData();
|
|
|
|
void dumpModuleSyms();
|
|
void dumpModuleC11();
|
|
void dumpModuleC13();
|
|
|
|
void dumpTypeIndex(uint32_t StreamIdx, ArrayRef<uint32_t> Indices);
|
|
|
|
Expected<codeview::LazyRandomTypeCollection &>
|
|
initializeTypes(uint32_t StreamIdx);
|
|
|
|
std::unique_ptr<codeview::LazyRandomTypeCollection> TpiTypes;
|
|
std::unique_ptr<codeview::LazyRandomTypeCollection> IpiTypes;
|
|
|
|
PDBFile &File;
|
|
LinePrinter P;
|
|
ExitOnError Err;
|
|
SmallVector<StreamInfo, 8> StreamPurposes;
|
|
};
|
|
} // namespace pdb
|
|
} // namespace llvm
|
|
|
|
#endif
|