Create SOS SymbolReader managed project and change SOS to use it. (dotnet/coreclr...
authorMike McLaughlin <mikem@microsoft.com>
Fri, 19 Aug 2016 23:06:56 +0000 (16:06 -0700)
committerGitHub <noreply@github.com>
Fri, 19 Aug 2016 23:06:56 +0000 (16:06 -0700)
commit959229776f7922b908353dd2255a2f54b86794ee
treed0bbb91e293ef29f995d09d3ec1722203bfc9f3a
parent1f5829ba4399f7c655b2a3271f24439e2554f664
Create SOS SymbolReader managed project and change SOS to use it. (dotnet/coreclr#6783)

* Change SOS to use wrapper class that is now in System.Diagnostics.StackTrace.

The portable PDB helper code for SOS source/line support has been moved from
System.Diagnostics.Debug.SymbolReader to a new managed SOS project in the coreclr
repo called SOS.NETCore.

The public APIs have now been made internal.

Plumb through the loaded PE address to the managed SymbolReader functions so it can be used as a key.

Fixed a stack trashing/overflow when a unresolved managed breakpoint is resolved because one of the
module name buffers was too small (MAX_PATH_FNAME). Changed it (and others) to MAXLONGPATH.

SOS now works with Portable PDBs on Windows.

New dac private get module data request. Used to get the necessary info for portable PDBs.

SOS now supports in-memory PE's on xplat and Windows. Needed to get and plumb though the in-memory
PE layout where it is file based or loaded.

Better Windows GetLineByILOffset support. Uses the SymbolReader and now works with in-memory PEs.

Misc code formatting and general cleanup.

* Code review feedback.

Commit migrated from https://github.com/dotnet/coreclr/commit/75890669d59ea8e1a28ade8222ebec2706082674
30 files changed:
src/coreclr/build.proj
src/coreclr/dir.props
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/fedora/23/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/opensuse/13.2/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/14.04/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/16.04/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/coreclr/src/ToolBox/SOS/NETCore/SOS.NETCore.csproj [new file with mode: 0644]
src/coreclr/src/ToolBox/SOS/NETCore/SOS.NETCore.sln [new file with mode: 0644]
src/coreclr/src/ToolBox/SOS/NETCore/SymbolReader.cs [new file with mode: 0644]
src/coreclr/src/ToolBox/SOS/NETCore/project.json [new file with mode: 0644]
src/coreclr/src/ToolBox/SOS/Strike/CMakeLists.txt
src/coreclr/src/ToolBox/SOS/Strike/disasmARM.cpp
src/coreclr/src/ToolBox/SOS/Strike/disasmARM64.cpp
src/coreclr/src/ToolBox/SOS/Strike/disasmX86.cpp
src/coreclr/src/ToolBox/SOS/Strike/strike.cpp
src/coreclr/src/ToolBox/SOS/Strike/util.cpp
src/coreclr/src/ToolBox/SOS/Strike/util.h
src/coreclr/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h
src/coreclr/src/build.proj
src/coreclr/src/debug/daccess/dacimpl.h
src/coreclr/src/debug/daccess/task.cpp
src/coreclr/src/dlls/mscoree/unixinterface.cpp
src/coreclr/src/inc/dacprivate.h
src/coreclr/src/inc/palclr.h
src/coreclr/src/mscorlib/src/System/Diagnostics/Stacktrace.cs
src/coreclr/src/vm/gdbjit.cpp