mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-19 01:34:32 +00:00
e09af84db5
Previously it was impossible to distinguish between "There is no PDB implementation for this platform" and "I tried to load the PDB, but couldn't find the file", making it hard to figure out if you built llvm-pdbdump incorrectly or if you just mistyped a file name. This patch adds proper error handling so that we can know exactly what went wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230868 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
//===- DIASession.h - DIA implementation of IPDBSession ---------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_DEBUGINFO_PDB_DIA_DIASESSION_H
|
|
#define LLVM_DEBUGINFO_PDB_DIA_DIASESSION_H
|
|
|
|
#include "DIASupport.h"
|
|
#include "llvm/ADT/StringRef.h"
|
|
#include "llvm/DebugInfo/PDB/IPDBSession.h"
|
|
|
|
namespace llvm {
|
|
class DIASession : public IPDBSession {
|
|
public:
|
|
explicit DIASession(CComPtr<IDiaSession> DiaSession);
|
|
|
|
static PDB_ErrorCode createFromPdb(StringRef Path,
|
|
std::unique_ptr<IPDBSession> &Session);
|
|
|
|
uint64_t getLoadAddress() const override;
|
|
void setLoadAddress(uint64_t Address) override;
|
|
std::unique_ptr<PDBSymbolExe> getGlobalScope() const override;
|
|
std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const override;
|
|
|
|
std::unique_ptr<IPDBEnumSourceFiles> getAllSourceFiles() const override;
|
|
std::unique_ptr<IPDBEnumSourceFiles> getSourceFilesForCompiland(
|
|
const PDBSymbolCompiland &Compiland) const override;
|
|
std::unique_ptr<IPDBSourceFile>
|
|
getSourceFileById(uint32_t FileId) const override;
|
|
|
|
std::unique_ptr<IPDBEnumDataStreams> getDebugStreams() const override;
|
|
|
|
private:
|
|
CComPtr<IDiaSession> Session;
|
|
};
|
|
}
|
|
|
|
#endif
|