diff --git a/Binaries/NetExt-2.1.58.5000.zip b/Binaries/Archive/NetExt-2.1.58.5000.zip similarity index 100% rename from Binaries/NetExt-2.1.58.5000.zip rename to Binaries/Archive/NetExt-2.1.58.5000.zip diff --git a/Binaries/NetExt-2.1.59.5000.zip b/Binaries/NetExt-2.1.59.5000.zip new file mode 100644 index 00000000..1adad4ae Binary files /dev/null and b/Binaries/NetExt-2.1.59.5000.zip differ diff --git a/Binaries/README.md b/Binaries/README.md index a59b2ba3..2b351376 100644 Binary files a/Binaries/README.md and b/Binaries/README.md differ diff --git a/Binaries/readme.txt b/Binaries/readme.txt index f96b1dd3..1fa8dc0b 100644 --- a/Binaries/readme.txt +++ b/Binaries/readme.txt @@ -7,7 +7,7 @@ https://github.com/rodneyviana/netext Getting Started: ================== No matter whether you are a WinDbg debugger already or not, check this out: -http://blogs.msdn.com/b/rodneyviana/archive/2015/03/10/getting-started-with-netext.aspx +https://docs.microsoft.com/en-us/archive/blogs/rodneyviana/getting-started-with-netext Caution: ================= diff --git a/Binaries/x64/NetExt.dll b/Binaries/x64/NetExt.dll index 4f97f265..75073488 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 25849c0a..958abdbb 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 622e8809..d4d38779 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 ccf146d4..6421b8d8 100644 Binary files a/Binaries/x64/NetExtShim.pdb and b/Binaries/x64/NetExtShim.pdb differ diff --git a/Binaries/x64/readme.txt b/Binaries/x64/readme.txt index f96b1dd3..1fa8dc0b 100644 --- a/Binaries/x64/readme.txt +++ b/Binaries/x64/readme.txt @@ -7,7 +7,7 @@ https://github.com/rodneyviana/netext Getting Started: ================== No matter whether you are a WinDbg debugger already or not, check this out: -http://blogs.msdn.com/b/rodneyviana/archive/2015/03/10/getting-started-with-netext.aspx +https://docs.microsoft.com/en-us/archive/blogs/rodneyviana/getting-started-with-netext Caution: ================= diff --git a/Binaries/x86/NetExt.dll b/Binaries/x86/NetExt.dll index 9f55dcfa..cc8671b6 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 86fea3f0..bda7a53f 100644 Binary files a/Binaries/x86/NetExtShim.dll and b/Binaries/x86/NetExtShim.dll differ diff --git a/Binaries/x86/readme.txt b/Binaries/x86/readme.txt index f96b1dd3..1fa8dc0b 100644 --- a/Binaries/x86/readme.txt +++ b/Binaries/x86/readme.txt @@ -7,7 +7,7 @@ https://github.com/rodneyviana/netext Getting Started: ================== No matter whether you are a WinDbg debugger already or not, check this out: -http://blogs.msdn.com/b/rodneyviana/archive/2015/03/10/getting-started-with-netext.aspx +https://docs.microsoft.com/en-us/archive/blogs/rodneyviana/getting-started-with-netext Caution: ================= diff --git a/ClrMemDiagExt/DebugApi.cs b/ClrMemDiagExt/DebugApi.cs index 13e603a8..54984d93 100644 --- a/ClrMemDiagExt/DebugApi.cs +++ b/ClrMemDiagExt/DebugApi.cs @@ -2742,11 +2742,30 @@ internal static bool CreateBreakpointFromExpression(string Expression, BreakPoin private static string pFormat = String.Format(":x{0}", Marshal.SizeOf(IntPtr.Zero) * 2); + public static unsafe int QueryVirtual(ulong Offset, out MEMORY_BASIC_INFORMATION64 Info) + { + Info = default(MEMORY_BASIC_INFORMATION64); + // MEMORY_BASIC_INFORMATION64 structure is explicitly declared to be 16-byte aligned [DECLSPEC_ALIGN(16)] when using Live Target + // The lines below is C++ equivalent to this: DECLSPEC_ALIGN(16) MEMORY_BASIC_INFORMATION64 Info + var globalAlloc = Marshal.AllocHGlobal(Marshal.SizeOf(Info) + 15); + var aligned = new IntPtr((globalAlloc.ToInt64() + 0xf) & ~0xf); // Pointer is 16-byte aligned + + IDebugDataSpaces2 data = (IDebugDataSpaces2)Client; + var result = data.QueryVirtual(Offset, aligned); + if (result == (int)HRESULT.S_OK) + { + Info = *(MEMORY_BASIC_INFORMATION64*)aligned.ToPointer(); + } + Marshal.FreeHGlobal(globalAlloc); + return result; + + } + public static MEMORY_BASIC_INFORMATION64 AddressType(ulong Address) { IDebugDataSpaces2 data = (IDebugDataSpaces2)Client; - MEMORY_BASIC_INFORMATION64 mbi = new MEMORY_BASIC_INFORMATION64(); - int result = data.QueryVirtual(Address,out mbi); + MEMORY_BASIC_INFORMATION64 mbi; + int result = DebugApi.QueryVirtual(Address,out mbi); if(result == (int)HRESULT.S_OK) { return mbi; diff --git a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Debugger/IDebugDataSpaces2.cs b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Debugger/IDebugDataSpaces2.cs index 7a810f48..b2fe0de6 100644 --- a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Debugger/IDebugDataSpaces2.cs +++ b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/Debugger/IDebugDataSpaces2.cs @@ -202,6 +202,6 @@ int FillPhysical( [PreserveSig] int QueryVirtual( [In] UInt64 Offset, - [Out] out MEMORY_BASIC_INFORMATION64 Info); + [Out] IntPtr MEMORY_BASIC_INFORMATION_Info_ALigned); } } \ No newline at end of file diff --git a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/datatarget.cs b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/datatarget.cs index 3ab61244..2e31c40f 100644 --- a/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/datatarget.cs +++ b/ClrMemDiagExt/Microsoft.Diagnostics.Runtime/datatarget.cs @@ -1847,7 +1847,7 @@ public bool VirtualQuery(ulong addr, out VirtualQueryData vq) SetClientInstance(); MEMORY_BASIC_INFORMATION64 mem; - int hr = _spaces2.QueryVirtual(addr, out mem); + int hr = NetExt.Shim.DebugApi.QueryVirtual(addr, out mem); vq.BaseAddress = mem.BaseAddress; vq.Size = mem.RegionSize; @@ -1902,7 +1902,7 @@ internal int QueryVirtual(ulong addr, out MEMORY_BASIC_INFORMATION64 mem) } SetClientInstance(); - return _spaces2.QueryVirtual(addr, out mem); + return NetExt.Shim.DebugApi.QueryVirtual(addr, out mem); } internal int GetModuleByModuleName(string image, int start, out uint index, out ulong baseAddress) diff --git a/ClrMemDiagExt/Module.cs b/ClrMemDiagExt/Module.cs index 236910d7..f52a6291 100644 --- a/ClrMemDiagExt/Module.cs +++ b/ClrMemDiagExt/Module.cs @@ -812,7 +812,7 @@ public Version VersionInfo { try { - Version ver = new System.Version(ProductVersion); + Version ver = ProductVersion != null ? new System.Version(ProductVersion) : new System.Version(); return ver; } catch diff --git a/ClrMemDiagExt/Properties/AssemblyInfo.cs b/ClrMemDiagExt/Properties/AssemblyInfo.cs index c8e8302d..cb54a747 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.58.5000")] -[assembly: AssemblyFileVersion("2.1.58.5000")] \ No newline at end of file +[assembly: AssemblyVersion("2.1.59.5000")] +[assembly: AssemblyFileVersion("2.1.59.5000")] \ No newline at end of file diff --git a/NetExt/Release32/CL.read.1.tlog b/NetExt/Release32/CL.read.1.tlog index 03e49bee..d888c8ca 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 681b9435..4f5db651 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 9a7e55ff..6c7d1fa3 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 244fbf45..f7a1da6c 100644 --- a/NetExt/Release32/NetExt.write.1.tlog +++ b/NetExt/Release32/NetExt.write.1.tlog @@ -83,3 +83,23 @@ 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 +^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 +^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 +^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 3d17dff9..22d0eef7 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 8749ccf5..4c2d663a 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 58 +#define ver_release 59 #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 a59b2ba3..2b351376 100644 Binary files a/README.md and b/README.md differ diff --git a/Release32/NetExt.exp b/Release32/NetExt.exp index 006bb2b9..121a11bc 100644 Binary files a/Release32/NetExt.exp and b/Release32/NetExt.exp differ diff --git a/Release32/NetExt.lib b/Release32/NetExt.lib index 1b9d5e91..f1b7dd47 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 9f55dcfa..cc8671b6 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 ec7e9d47..bda7a53f 100644 Binary files a/x86/Release32/NetExtShim.dll and b/x86/Release32/NetExtShim.dll differ