mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-24 09:29:42 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235237 91177308-0d34-0410-b5e6-96231b3b80d8
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;
|
|
}
|