mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
7bf82f4127
Previously DebugInfoPDB could only load data for a PDB given a path to the PDB. It could not open an EXE and find the matching PDB and verify it matched, etc. This patch adds support for that so that we can simply load debug information for a PDB directly. Additionally, this patch extends DebugInfoPDB to support getting source and line information for symbols. llvm-svn: 235237
40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
//===- PDB.cpp - base header file for creating a PDB reader -----*- 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/PDB/PDB.h"
|
|
|
|
#include "llvm/ADT/StringRef.h"
|
|
#include "llvm/Config/config.h"
|
|
#include "llvm/DebugInfo/PDB/IPDBSession.h"
|
|
#include "llvm/DebugInfo/PDB/PDB.h"
|
|
|
|
#if HAVE_DIA_SDK
|
|
#include "llvm/DebugInfo/PDB/DIA/DIASession.h"
|
|
#endif
|
|
|
|
using namespace llvm;
|
|
|
|
PDB_ErrorCode llvm::loadDataForPDB(PDB_ReaderType Type, StringRef Path,
|
|
std::unique_ptr<IPDBSession> &Session) {
|
|
// Create the correct concrete instance type based on the value of Type.
|
|
#if HAVE_DIA_SDK
|
|
return DIASession::createFromPdb(Path, Session);
|
|
#endif
|
|
return PDB_ErrorCode::NoPdbImpl;
|
|
}
|
|
|
|
PDB_ErrorCode llvm::loadDataForEXE(PDB_ReaderType Type, StringRef Path,
|
|
std::unique_ptr<IPDBSession> &Session) {
|
|
// Create the correct concrete instance type based on the value of Type.
|
|
#if HAVE_DIA_SDK
|
|
return DIASession::createFromExe(Path, Session);
|
|
#endif
|
|
return PDB_ErrorCode::NoPdbImpl;
|
|
}
|