Browse Source

Fix #1178: Ignore PDB load errors.

pull/1030/head
Siegfried Pammer 7 years ago
parent
commit
6d1792652b
  1. 30
      ILSpy/LoadedAssembly.cs

30
ILSpy/LoadedAssembly.cs

@ -168,20 +168,24 @@ namespace ICSharpCode.ILSpy
private void LoadSymbols(PEFile module) private void LoadSymbols(PEFile module)
{ {
var reader = module.Reader; try {
// try to open portable pdb file/embedded pdb info: var reader = module.Reader;
if (reader.TryOpenAssociatedPortablePdb(fileName, OpenStream, out var provider, out var pdbFileName)) { // try to open portable pdb file/embedded pdb info:
debugInfoProvider = new PortableDebugInfoProvider(pdbFileName, provider); if (reader.TryOpenAssociatedPortablePdb(fileName, OpenStream, out var provider, out var pdbFileName)) {
} else { debugInfoProvider = new PortableDebugInfoProvider(pdbFileName, provider);
// search for pdb in same directory as dll } else {
string pdbDirectory = Path.GetDirectoryName(fileName); // search for pdb in same directory as dll
pdbFileName = Path.Combine(pdbDirectory, Path.GetFileNameWithoutExtension(fileName) + ".pdb"); string pdbDirectory = Path.GetDirectoryName(fileName);
if (File.Exists(pdbFileName)) { pdbFileName = Path.Combine(pdbDirectory, Path.GetFileNameWithoutExtension(fileName) + ".pdb");
debugInfoProvider = new DiaSymNativeDebugInfoProvider(module, pdbFileName, OpenStream(pdbFileName)); if (File.Exists(pdbFileName)) {
return; debugInfoProvider = new DiaSymNativeDebugInfoProvider(module, pdbFileName, OpenStream(pdbFileName));
} return;
}
// TODO: use symbol cache, get symbols from microsoft // TODO: use symbol cache, get symbols from microsoft
}
} catch (BadImageFormatException) {
// Ignore PDB load errors
} }
Stream OpenStream(string fileName) Stream OpenStream(string fileName)

Loading…
Cancel
Save