Home | History | Annotate | Download | only in PDB
      1 //===- PDB.cpp - base header file for creating a PDB reader -----*- 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 
     10 #include "llvm/DebugInfo/PDB/PDB.h"
     11 
     12 #include "llvm/ADT/StringRef.h"
     13 #include "llvm/Config/config.h"
     14 #include "llvm/DebugInfo/PDB/IPDBSession.h"
     15 #include "llvm/DebugInfo/PDB/PDB.h"
     16 
     17 #if HAVE_DIA_SDK
     18 #include "llvm/DebugInfo/PDB/DIA/DIASession.h"
     19 #endif
     20 
     21 using namespace llvm;
     22 
     23 PDB_ErrorCode llvm::loadDataForPDB(PDB_ReaderType Type, StringRef Path,
     24                                    std::unique_ptr<IPDBSession> &Session) {
     25   // Create the correct concrete instance type based on the value of Type.
     26 #if HAVE_DIA_SDK
     27   return DIASession::createFromPdb(Path, Session);
     28 #endif
     29   return PDB_ErrorCode::NoPdbImpl;
     30 }
     31 
     32 PDB_ErrorCode llvm::loadDataForEXE(PDB_ReaderType Type, StringRef Path,
     33                                    std::unique_ptr<IPDBSession> &Session) {
     34   // Create the correct concrete instance type based on the value of Type.
     35 #if HAVE_DIA_SDK
     36   return DIASession::createFromExe(Path, Session);
     37 #endif
     38   return PDB_ErrorCode::NoPdbImpl;
     39 }
     40