diff --git a/Binaries/NetExt-2.1.62.5000.zip b/Binaries/Archive/NetExt-2.1.62.5000.zip similarity index 100% rename from Binaries/NetExt-2.1.62.5000.zip rename to Binaries/Archive/NetExt-2.1.62.5000.zip diff --git a/Binaries/NetExt-2.1.63.5000.zip b/Binaries/NetExt-2.1.63.5000.zip new file mode 100644 index 00000000..7d8080ac Binary files /dev/null and b/Binaries/NetExt-2.1.63.5000.zip differ diff --git a/Binaries/README.md b/Binaries/README.md index 74f6449e..57fb6af2 100644 Binary files a/Binaries/README.md and b/Binaries/README.md differ diff --git a/Binaries/x64/NetExt.dll b/Binaries/x64/NetExt.dll index a8295efd..eb21ee99 100644 Binary files a/Binaries/x64/NetExt.dll and b/Binaries/x64/NetExt.dll differ diff --git a/Binaries/x64/NetExt.pdb b/Binaries/x64/NetExt.pdb index 05a1a0e4..9359f52b 100644 Binary files a/Binaries/x64/NetExt.pdb and b/Binaries/x64/NetExt.pdb differ diff --git a/Binaries/x64/NetExtShim.dll b/Binaries/x64/NetExtShim.dll index c01505b7..39e69221 100644 Binary files a/Binaries/x64/NetExtShim.dll and b/Binaries/x64/NetExtShim.dll differ diff --git a/Binaries/x64/NetExtShim.pdb b/Binaries/x64/NetExtShim.pdb index 6866daf4..3870ea3a 100644 Binary files a/Binaries/x64/NetExtShim.pdb and b/Binaries/x64/NetExtShim.pdb differ diff --git a/Binaries/x86/NetExt.dll b/Binaries/x86/NetExt.dll index 514c7d34..523d47e9 100644 Binary files a/Binaries/x86/NetExt.dll and b/Binaries/x86/NetExt.dll differ diff --git a/Binaries/x86/NetExtShim.dll b/Binaries/x86/NetExtShim.dll index 30d174b9..db27ffe8 100644 Binary files a/Binaries/x86/NetExtShim.dll and b/Binaries/x86/NetExtShim.dll differ diff --git a/ClrMemDiagExt/COMInterop.cs b/ClrMemDiagExt/COMInterop.cs index b66cb9ed..dab8ea3b 100644 --- a/ClrMemDiagExt/COMInterop.cs +++ b/ClrMemDiagExt/COMInterop.cs @@ -3724,9 +3724,9 @@ public int MakeSourceInternal(ulong IP=0) { Module mod = IP == 0 ? DebugApi.ModuleFromScope : DebugApi.GetModuleFromIp(IP); - if (!mod.IsClr) + if (mod == null || !mod.IsClr) { - Exports.WriteLine("Module {0} is not managed. No source will be created.", mod.Name); + Exports.WriteLine("Module {0} is not managed or could not be found. No source will be created.", mod.Name); Exports.WriteLine("Move to the frame context in the stack where you want the code created (example .frame 3)"); return HRESULTS.E_FAIL; } diff --git a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/runtimebase.cs b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/runtimebase.cs index 29d34030..62ffc973 100644 --- a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/runtimebase.cs +++ b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/runtimebase.cs @@ -295,7 +295,10 @@ public override ClrMethod GetMethodByHandle(ulong methodHandle) ClrType type = Heap.GetTypeByMethodTable(methodDesc.MethodTable); if (type == null) return null; - +#if DEBUG + var p = type.GetMethod(methodDesc.MDToken); + var name = p.Name; +#endif return type.GetMethod(methodDesc.MDToken); } diff --git a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/types.cs b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/types.cs index 9927a7e8..917a12ab 100644 --- a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/types.cs +++ b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Desktop/types.cs @@ -1416,7 +1416,7 @@ private void InitFields() internal override ClrMethod GetMethod(uint token) { - return Methods.Where(m => m.MetadataToken == token).FirstOrDefault(); + return Methods.Where(m => m.MetadataToken == token).LastOrDefault(); } public override IList Methods diff --git a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Utilities/PDB/PdbFile.cs b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Utilities/PDB/PdbFile.cs index a2de9455..94ecd079 100644 --- a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Utilities/PDB/PdbFile.cs +++ b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Utilities/PDB/PdbFile.cs @@ -463,9 +463,11 @@ internal static PdbFunction[] LoadFunctions(Stream read, dir._streams[1].Read(reader, bits); Dictionary nameIndex = LoadNameIndex(bits, out ver, out sig, out age, out guid); int nameStream; + List funcList = new List(); if (!nameIndex.TryGetValue("/NAMES", out nameStream)) { - throw new PdbException("No `name' stream"); + return funcList.ToArray(); // It's a public symbol with no method information + //throw new PdbException("No `name' stream"); } dir._streams[nameStream].Read(reader, bits); @@ -474,7 +476,7 @@ internal static PdbFunction[] LoadFunctions(Stream read, dir._streams[3].Read(reader, bits); LoadDbiStream(bits, out modules, out header, readAllStrings); - List funcList = new List(); + Dictionary sourceDictionary = new Dictionary(); if (modules != null) { diff --git a/ClrMemDiagExt/Properties/AssemblyInfo.cs b/ClrMemDiagExt/Properties/AssemblyInfo.cs index 1f3fb037..eefd4edb 100644 --- a/ClrMemDiagExt/Properties/AssemblyInfo.cs +++ b/ClrMemDiagExt/Properties/AssemblyInfo.cs @@ -22,5 +22,5 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("f12c38b7-0893-4208-ab3d-54c3f8d1c01e")] -[assembly: AssemblyVersion("2.1.62.5000")] -[assembly: AssemblyFileVersion("2.1.62.5000")] \ No newline at end of file +[assembly: AssemblyVersion("2.1.63.5000")] +[assembly: AssemblyFileVersion("2.1.63.5000")] \ No newline at end of file diff --git a/NetExt/Release32/CL.read.1.tlog b/NetExt/Release32/CL.read.1.tlog index 169e7dcf..ab86fb53 100644 Binary files a/NetExt/Release32/CL.read.1.tlog and b/NetExt/Release32/CL.read.1.tlog differ diff --git a/NetExt/Release32/CL.write.1.tlog b/NetExt/Release32/CL.write.1.tlog index 4f5db651..681b9435 100644 Binary files a/NetExt/Release32/CL.write.1.tlog and b/NetExt/Release32/CL.write.1.tlog differ diff --git a/NetExt/Release32/NetExt.res b/NetExt/Release32/NetExt.res index 84cb007f..f3cf1db3 100644 Binary files a/NetExt/Release32/NetExt.res and b/NetExt/Release32/NetExt.res differ diff --git a/NetExt/Release32/NetExt.write.1.tlog b/NetExt/Release32/NetExt.write.1.tlog index 6ace756b..faf80932 100644 --- a/NetExt/Release32/NetExt.write.1.tlog +++ b/NetExt/Release32/NetExt.write.1.tlog @@ -118,3 +118,8 @@ C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.lib C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.lib C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.exp C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.exp +^C:\Users\rviana\OneDrive\Projects\netext\NetExt\NetExt.vcxproj +C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.lib +C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.lib +C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.exp +C:\Users\rviana\OneDrive\Projects\netext\Release32\NetExt.exp diff --git a/NetExt/Release32/cl.command.1.tlog b/NetExt/Release32/cl.command.1.tlog index 22d0eef7..3d17dff9 100644 Binary files a/NetExt/Release32/cl.command.1.tlog and b/NetExt/Release32/cl.command.1.tlog differ diff --git a/NetExt/VersionInfo.h b/NetExt/VersionInfo.h index dd6c22f1..78afb670 100644 --- a/NetExt/VersionInfo.h +++ b/NetExt/VersionInfo.h @@ -8,7 +8,7 @@ #ifndef ver_major #define ver_major 2 #define ver_minor 1 -#define ver_release 62 +#define ver_release 63 #define ver_build 5000 #define ver_all(a,b,c,d) a,b,c,d #define ver_expand(s) #s diff --git a/README.md b/README.md index 74f6449e..57fb6af2 100644 Binary files a/README.md and b/README.md differ diff --git a/Release32/NetExt.exp b/Release32/NetExt.exp index 98ac9029..c9fcdd81 100644 Binary files a/Release32/NetExt.exp and b/Release32/NetExt.exp differ diff --git a/Release32/NetExt.lib b/Release32/NetExt.lib index e867de00..a37d81d3 100644 Binary files a/Release32/NetExt.lib and b/Release32/NetExt.lib differ diff --git a/x86/Release32/NetExt.dll b/x86/Release32/NetExt.dll index 514c7d34..523d47e9 100644 Binary files a/x86/Release32/NetExt.dll and b/x86/Release32/NetExt.dll differ diff --git a/x86/Release32/NetExtShim.dll b/x86/Release32/NetExtShim.dll index 30d174b9..d2e079ed 100644 Binary files a/x86/Release32/NetExtShim.dll and b/x86/Release32/NetExtShim.dll differ