blob: 096ccf6d0cd24f65ebf69c3ad00b444f2bd6eb95 [file] [log] [blame]
Zachary Turner21473f72015-02-08 00:29:29 +00001//===- PDBSymbolThunk.cpp - -------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Zachary Turner21473f72015-02-08 00:29:29 +000010#include "llvm/DebugInfo/PDB/PDBSymbol.h"
11#include "llvm/DebugInfo/PDB/PDBSymbolThunk.h"
Zachary Turnera5549172015-02-10 22:43:25 +000012#include "llvm/Support/Format.h"
Chandler Carruth71f308a2015-02-13 09:09:03 +000013#include <utility>
Zachary Turnera5549172015-02-10 22:43:25 +000014
Zachary Turner21473f72015-02-08 00:29:29 +000015using namespace llvm;
16
Zachary Turner98571ed2015-02-08 22:53:53 +000017PDBSymbolThunk::PDBSymbolThunk(const IPDBSession &PDBSession,
Zachary Turnerbae16b32015-02-08 20:58:09 +000018 std::unique_ptr<IPDBRawSymbol> Symbol)
David Blaikiee4698b92015-02-08 23:15:37 +000019 : PDBSymbol(PDBSession, std::move(Symbol)) {}
Zachary Turner21473f72015-02-08 00:29:29 +000020
Zachary Turnera5549172015-02-10 22:43:25 +000021void PDBSymbolThunk::dump(raw_ostream &OS, int Indent,
22 PDB_DumpLevel Level) const {
Zachary Turnera952c492015-02-13 07:40:03 +000023 OS.indent(Indent);
24 OS << "thunk ";
25 PDB_ThunkOrdinal Ordinal = getThunkOrdinal();
26 uint32_t RVA = getRelativeVirtualAddress();
27 if (Ordinal == PDB_ThunkOrdinal::TrampIncremental) {
28 OS << format_hex(RVA, 10);
29 } else {
30 OS << "[" << format_hex(RVA, 10);
31 OS << " - " << format_hex(RVA + getLength(), 10) << "]";
Zachary Turnera5549172015-02-10 22:43:25 +000032 }
Zachary Turnera952c492015-02-13 07:40:03 +000033 OS << " (" << Ordinal << ")";
34 if (Ordinal == PDB_ThunkOrdinal::TrampIncremental)
35 OS << " -> " << format_hex(getTargetRelativeVirtualAddress(), 10);
36 OS << " ";
37 std::string Name = getName();
38 if (!Name.empty())
39 OS << Name;
Zachary Turnera5549172015-02-10 22:43:25 +000040}