mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
[llvm-pdbdump] Better error handling.
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
This commit is contained in:
@@ -66,11 +66,26 @@ cl::opt<bool> ClassDefs("class-definitions",
|
||||
}
|
||||
|
||||
static void dumpInput(StringRef Path) {
|
||||
std::unique_ptr<IPDBSession> Session(
|
||||
llvm::createPDBReader(PDB_ReaderType::DIA, Path));
|
||||
if (!Session) {
|
||||
outs() << "Unable to create PDB reader. Check that a valid implementation";
|
||||
outs() << " is available for your platform.";
|
||||
std::unique_ptr<IPDBSession> Session;
|
||||
PDB_ErrorCode Error =
|
||||
llvm::createPDBReader(PDB_ReaderType::DIA, Path, Session);
|
||||
switch (Error) {
|
||||
case PDB_ErrorCode::Success:
|
||||
break;
|
||||
case PDB_ErrorCode::NoPdbImpl:
|
||||
outs() << "Reading PDBs is not supported on this platform.\n";
|
||||
return;
|
||||
case PDB_ErrorCode::InvalidPath:
|
||||
outs() << "Unable to load PDB at '" << Path
|
||||
<< "'. Check that the file exists and is readable.\n";
|
||||
return;
|
||||
case PDB_ErrorCode::InvalidFileFormat:
|
||||
outs() << "Unable to load PDB at '" << Path
|
||||
<< "'. The file has an unrecognized format.\n";
|
||||
return;
|
||||
default:
|
||||
outs() << "Unable to load PDB at '" << Path
|
||||
<< "'. An unknown error occured.\n";
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user