Browse Source

Fix loading of portable PDBs in ILSpy

pull/1198/head
Siegfried Pammer 7 years ago
parent
commit
67e6f8daf5
  1. 5
      ILSpy/LoadedAssembly.cs

5
ILSpy/LoadedAssembly.cs

@ -146,13 +146,13 @@ namespace ICSharpCode.ILSpy
private void LoadSymbols(PEFile module) private void LoadSymbols(PEFile module)
{ {
string pdbDirectory = Path.GetDirectoryName(fileName);
var reader = module.Reader; var reader = module.Reader;
// try to open portable pdb file/embedded pdb info: // try to open portable pdb file/embedded pdb info:
if (reader.TryOpenAssociatedPortablePdb(pdbDirectory, OpenStream, out var provider, out var pdbFileName)) { if (reader.TryOpenAssociatedPortablePdb(fileName, OpenStream, out var provider, out var pdbFileName)) {
module.DebugInfo = new PortableDebugInfoProvider(pdbFileName, provider); module.DebugInfo = new PortableDebugInfoProvider(pdbFileName, provider);
} else { } else {
// search for pdb in same directory as dll // search for pdb in same directory as dll
string pdbDirectory = Path.GetDirectoryName(fileName);
pdbFileName = Path.Combine(pdbDirectory, Path.GetFileNameWithoutExtension(fileName) + ".pdb"); pdbFileName = Path.Combine(pdbDirectory, Path.GetFileNameWithoutExtension(fileName) + ".pdb");
if (File.Exists(pdbFileName)) { if (File.Exists(pdbFileName)) {
module.DebugInfo = new DiaSymNativeDebugInfoProvider(module, pdbFileName, OpenStream(pdbFileName)); module.DebugInfo = new DiaSymNativeDebugInfoProvider(module, pdbFileName, OpenStream(pdbFileName));
@ -169,6 +169,7 @@ namespace ICSharpCode.ILSpy
var memory = new MemoryStream(); var memory = new MemoryStream();
using (var stream = File.OpenRead(fileName)) using (var stream = File.OpenRead(fileName))
stream.CopyTo(memory); stream.CopyTo(memory);
memory.Position = 0;
return memory; return memory;
} }
} }

Loading…
Cancel
Save