diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2017-02-10 20:35:12 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2017-02-10 20:35:12 +0900 |
commit | 4b11dc566a5bbfa1378d6266525c281b028abcc8 (patch) | |
tree | b48831a898906734f8884d08b6e18f1144ee2b82 /src/ToolBox/SOS | |
parent | db20f3f1bb8595633a7e16c8900fd401a453a6b5 (diff) | |
download | coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.tar.gz coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.tar.bz2 coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.zip |
Imported Upstream version 1.0.0.9910upstream/1.0.0.9910
Diffstat (limited to 'src/ToolBox/SOS')
-rw-r--r-- | src/ToolBox/SOS/Strike/SOS.nativeproj | 7 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/SOS.sln | 76 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/SOS.vcproj | 303 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/dirs.proj | 20 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/disasmARM.cpp | 1 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/eeheap.cpp | 4 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/exts.cpp | 15 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/inc/dbgeng.h | 18 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/sos.targets | 166 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/strike.h | 4 | ||||
-rw-r--r-- | src/ToolBox/SOS/Strike/xplat/dbgeng.h | 2 | ||||
-rw-r--r-- | src/ToolBox/SOS/diasdk/diasdk.nativeproj | 43 | ||||
-rw-r--r-- | src/ToolBox/SOS/dirs.proj | 32 | ||||
-rw-r--r-- | src/ToolBox/SOS/lldbplugin/CMakeLists.txt | 44 | ||||
-rw-r--r-- | src/ToolBox/SOS/lldbplugin/inc/lldbservices.h | 1 | ||||
-rw-r--r-- | src/ToolBox/SOS/lldbplugin/services.cpp | 10 |
16 files changed, 56 insertions, 690 deletions
diff --git a/src/ToolBox/SOS/Strike/SOS.nativeproj b/src/ToolBox/SOS/Strike/SOS.nativeproj deleted file mode 100644 index 4c0fc7616f..0000000000 --- a/src/ToolBox/SOS/Strike/SOS.nativeproj +++ /dev/null @@ -1,7 +0,0 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\xplat\SetHostLocal.props"/> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\toolbox\sos\strike\sos.targets" /> - <PropertyGroup> - <BuildCoreBinaries>true</BuildCoreBinaries> - </PropertyGroup> -</Project> diff --git a/src/ToolBox/SOS/Strike/SOS.sln b/src/ToolBox/SOS/Strike/SOS.sln deleted file mode 100644 index 08f4a64836..0000000000 --- a/src/ToolBox/SOS/Strike/SOS.sln +++ /dev/null @@ -1,76 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SOS", "SOS.vcxproj", "{3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mscordacwks", "..\..\..\mscordacwks.vcproj", "{C5716445-C233-4491-85A4-31B75731DD95}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mscordbi", "..\..\..\mscordbi.vcproj", "{95A6AE03-EC45-4450-93DB-9B21890F79E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - amd64chk|Win32 = amd64chk|Win32 - amd64dbg|Win32 = amd64dbg|Win32 - amd64ret|Win32 = amd64ret|Win32 - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - x86chk|Win32 = x86chk|Win32 - x86dbg|Win32 = x86dbg|Win32 - x86ret|Win32 = x86ret|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64chk|Win32.ActiveCfg = amd64chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64chk|Win32.Build.0 = amd64chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64dbg|Win32.ActiveCfg = amd64dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64dbg|Win32.Build.0 = amd64dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64ret|Win32.ActiveCfg = amd64ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64ret|Win32.Build.0 = amd64ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Debug|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Debug|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Release|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Release|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86chk|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86dbg|Win32.ActiveCfg = x86dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86dbg|Win32.Build.0 = x86dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86ret|Win32.ActiveCfg = x86ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86ret|Win32.Build.0 = x86ret|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64chk|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64chk|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64dbg|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64dbg|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64ret|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64ret|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Debug|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Debug|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Release|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Release|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86chk|Win32.Build.0 = x86chk|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86dbg|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86dbg|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86ret|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86ret|Win32.Build.0 = Debug|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64chk|Win32.ActiveCfg = amd64chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64chk|Win32.Build.0 = amd64chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64dbg|Win32.ActiveCfg = amd64dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64dbg|Win32.Build.0 = amd64dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64ret|Win32.ActiveCfg = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64ret|Win32.Build.0 = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Debug|Win32.ActiveCfg = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Debug|Win32.Build.0 = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Release|Win32.ActiveCfg = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Release|Win32.Build.0 = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86chk|Win32.Build.0 = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86dbg|Win32.ActiveCfg = x86dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86dbg|Win32.Build.0 = x86dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86ret|Win32.ActiveCfg = x86ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86ret|Win32.Build.0 = x86ret|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/ToolBox/SOS/Strike/SOS.vcproj b/src/ToolBox/SOS/Strike/SOS.vcproj deleted file mode 100644 index aff5e7cc60..0000000000 --- a/src/ToolBox/SOS/Strike/SOS.vcproj +++ /dev/null @@ -1,303 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="9.00" - Name="SOS" - ProjectGUID="{3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}" - Keyword="MakeFileProj" - TargetFrameworkVersion="131072" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="x86chk|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:x86/buildType:chk" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:x86/buildType:chk" - CleanCommandLine="" - Output="$(ProjectDir)\obj2c\i386\SOS.dll" - PreprocessorDefinitions="_X86_=1;i386=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - <Configuration - Name="x86dbg|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:x86/buildType:dbg" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:x86/buildType:dbg" - CleanCommandLine="" - Output="$(ProjectDir)\obj2d\i386\SOS.dll" - PreprocessorDefinitions="_X86_=1;i386=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - <Configuration - Name="x86ret|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:x86/buildType:ret" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:x86/buildType:ret" - CleanCommandLine="" - Output="$(ProjectDir)\obj2r\i386\SOS.dll" - PreprocessorDefinitions="_X86_=1;i386=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - <Configuration - Name="amd64chk|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:amd64/buildType:chk" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:amd64/buildType:chk" - CleanCommandLine="" - Output="$(ProjectDir)\obj2c\amd64\SOS.dll" - PreprocessorDefinitions="_AMD64_=1;_WIN64=1;_DEBUG=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - <Configuration - Name="amd64dbg|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:amd64/buildType:dbg" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:amd64/buildType:dbg" - CleanCommandLine="" - Output="$(ProjectDir)\obj2d\amd64\SOS.dll" - PreprocessorDefinitions="_AMD64_=1;_WIN64=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - <Configuration - Name="amd64ret|Win32" - OutputDirectory="$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="0" - > - <Tool - Name="VCNMakeTool" - BuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /quickBuild=$(ProjectPath)/buildArch:amd64/buildType:ret" - ReBuildCommandLine="$(ProjectDir)..\..\..\..\bin\runjs buildSOS /buildArgs:-c/buildArch:amd64/buildType:ret" - CleanCommandLine="" - Output="$(ProjectDir)\obj2r\amd64\SOS.dll" - PreprocessorDefinitions="_AMD64_=1;_WIN64=1" - IncludeSearchPath="inc\" - ForcedIncludes="" - AssemblySearchPath="" - ForcedUsingAssemblies="" - CompileAsManaged="" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - <File - RelativePath=".\data.h" - > - </File> - <File - RelativePath=".\inc\dbgeng.h" - > - </File> - <File - RelativePath=".\inc\dbghelp.h" - > - </File> - <File - RelativePath=".\disasm.h" - > - </File> - <File - RelativePath=".\exts.h" - > - </File> - <File - RelativePath=".\ntinfo.h" - > - </File> - <File - RelativePath=".\sos_md.h" - > - </File> - <File - RelativePath=".\sos_stacktrace.h" - > - </File> - <File - RelativePath=".\strike.h" - > - </File> - <File - RelativePath=".\symbol.h" - > - </File> - <File - RelativePath=".\util.h" - > - </File> - <File - RelativePath=".\UtilCode.h" - > - </File> - <File - RelativePath=".\inc\wdbgexts.h" - > - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - <File - RelativePath=".\Native.rc" - > - </File> - </Filter> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath=".\disasm.cpp" - > - </File> - <File - RelativePath=".\disasmIA64.cpp" - > - </File> - <File - RelativePath=".\disasmX86.cpp" - > - </File> - <File - RelativePath=".\dllsext.cpp" - > - </File> - <File - RelativePath=".\eeheap.cpp" - > - </File> - <File - RelativePath=".\exts.cpp" - > - </File> - <File - RelativePath=".\gchist.cpp" - > - </File> - <File - RelativePath=".\gcroot.cpp" - > - </File> - <File - RelativePath=".\metadata.cpp" - > - </File> - <File - RelativePath=".\sildasm.cpp" - > - </File> - <File - RelativePath=".\sos.cpp" - > - </File> - <File - RelativePath=".\sos.def" - > - </File> - <File - RelativePath=".\sos.h" - > - </File> - <File - RelativePath=".\stressLogDump.cpp" - > - </File> - <File - RelativePath=".\strike.cpp" - > - </File> - <File - RelativePath=".\util.cpp" - > - </File> - <File - RelativePath=".\utilIA64.cpp" - > - </File> - <File - RelativePath=".\utilX86.cpp" - > - </File> - <File - RelativePath=".\vm.cpp" - > - </File> - </Filter> - <File - RelativePath=".\sosdocs.txt" - > - </File> - <File - RelativePath=".\sources" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> diff --git a/src/ToolBox/SOS/Strike/dirs.proj b/src/ToolBox/SOS/Strike/dirs.proj deleted file mode 100644 index 1e391307aa..0000000000 --- a/src/ToolBox/SOS/Strike/dirs.proj +++ /dev/null @@ -1,20 +0,0 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" /> - - <PropertyGroup> - <BuildInPhase1>true</BuildInPhase1> - <BuildInPhaseDefault>false</BuildInPhaseDefault> - <BuildCoreBinaries>true</BuildCoreBinaries> - <BuildSysBinaries>true</BuildSysBinaries> - </PropertyGroup> - - <ItemGroup Condition="'$(BuildExePhase)' == '1'"> - <ProjectFile Condition="'$(BuildForCoreSystem)'!='true'" Include="sos.nativeproj" /> - <ProjectFile Condition="'$(BuildArchitecture)' == 'arm'" Include="sosx86\sosx86.nativeproj" /> - <ProjectFile Condition="'$(BuildArchitecture)' == 'i386' and '$(BuildForCoreSystem)' == 'true'" Include="sosx86\sosx86.nativeproj" /> - <ProjectFile Condition="'$(BuildArchitecture)' == 'amd64' and '$(BuildForCoreSystem)' == 'true'" Include="sosx64\sosx64.nativeproj" /> - <ProjectFile Condition="'$(BuildArchitecture)' == 'arm64' and '$(BuildForCoreSystem)' == 'true'" Include="sosx64\sosx64.nativeproj" /> - </ItemGroup> - - <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" /> -</Project> diff --git a/src/ToolBox/SOS/Strike/disasmARM.cpp b/src/ToolBox/SOS/Strike/disasmARM.cpp index 82173558fd..cc80d77590 100644 --- a/src/ToolBox/SOS/Strike/disasmARM.cpp +++ b/src/ToolBox/SOS/Strike/disasmARM.cpp @@ -28,6 +28,7 @@ namespace ARMGCDump { #undef _TARGET_X86_ +#define WIN64EXCEPTIONS #undef LIMITED_METHOD_CONTRACT #define LIMITED_METHOD_DAC_CONTRACT #define SUPPORTS_DAC diff --git a/src/ToolBox/SOS/Strike/eeheap.cpp b/src/ToolBox/SOS/Strike/eeheap.cpp index ac41e2deb6..5a5680fcfb 100644 --- a/src/ToolBox/SOS/Strike/eeheap.cpp +++ b/src/ToolBox/SOS/Strike/eeheap.cpp @@ -1614,9 +1614,9 @@ void LoaderHeapTraverse(CLRDATA_ADDRESS blockData,size_t blockSize,BOOL blockIsC \**********************************************************************/ void PrintHeapSize(DWORD_PTR total, DWORD_PTR wasted) { - ExtOut("Size: 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "lu) bytes", total, total); + ExtOut("Size: 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "u) bytes", total, total); if (wasted) - ExtOut(" total, 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "lu) bytes wasted", wasted, wasted); + ExtOut(" total, 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "u) bytes wasted", wasted, wasted); ExtOut(".\n"); } diff --git a/src/ToolBox/SOS/Strike/exts.cpp b/src/ToolBox/SOS/Strike/exts.cpp index 0b1f976cc2..566ba35f19 100644 --- a/src/ToolBox/SOS/Strike/exts.cpp +++ b/src/ToolBox/SOS/Strike/exts.cpp @@ -111,30 +111,29 @@ ArchQuery(void) { targetMachine = AMD64Machine::GetInstance(); } -#endif // SOS_TARGET_AMD64 -#ifdef SOS_TARGET_X86 +#elif defined(SOS_TARGET_X86) if (targetArchitecture == IMAGE_FILE_MACHINE_I386) { targetMachine = X86Machine::GetInstance(); } -#endif // SOS_TARGET_X86 -#ifdef SOS_TARGET_ARM +#elif defined(SOS_TARGET_ARM) if (targetArchitecture == IMAGE_FILE_MACHINE_ARMNT) { targetMachine = ARMMachine::GetInstance(); } -#endif // SOS_TARGET_ARM -#ifdef SOS_TARGET_ARM64 +#elif defined(SOS_TARGET_ARM64) if (targetArchitecture == IMAGE_FILE_MACHINE_ARM64) { targetMachine = ARM64Machine::GetInstance(); } -#endif // SOS_TARGET_ARM64 +#else +#error "Undefined target architecture" +#endif if (targetMachine == NULL) { g_targetMachine = NULL; - ExtErr("SOS does not support the current target architecture.\n"); + ExtErr("SOS does not support the current target architecture 0x%llx.\n", targetArchitecture); return E_FAIL; } diff --git a/src/ToolBox/SOS/Strike/inc/dbgeng.h b/src/ToolBox/SOS/Strike/inc/dbgeng.h index 73e4d19f99..cf04574c12 100644 --- a/src/ToolBox/SOS/Strike/inc/dbgeng.h +++ b/src/ToolBox/SOS/Strike/inc/dbgeng.h @@ -42,7 +42,11 @@ typedef struct _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; #define __out_xcount(x) #define __inout #define __inout_opt -#define __reserved +// Android defines various fields on struct which are named __reserved[x]; for example, in wchar.h, +// so we must prefix __reserved with __clr_ +#define __clr_reserved +#else +#define __clr_reserved __reserved #endif #ifdef __cplusplus @@ -1509,7 +1513,7 @@ DECLARE_INTERFACE_(IDebugClient, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -1937,7 +1941,7 @@ DECLARE_INTERFACE_(IDebugClient2, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -2394,7 +2398,7 @@ DECLARE_INTERFACE_(IDebugClient3, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -2902,7 +2906,7 @@ DECLARE_INTERFACE_(IDebugClient4, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -3449,7 +3453,7 @@ DECLARE_INTERFACE_(IDebugClient5, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -3961,7 +3965,7 @@ DECLARE_INTERFACE_(IDebugClient5, IUnknown) THIS_ __in ULONG Flags, __in PCWSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServerWide)( THIS_ diff --git a/src/ToolBox/SOS/Strike/sos.targets b/src/ToolBox/SOS/Strike/sos.targets deleted file mode 100644 index 3a8185c6da..0000000000 --- a/src/ToolBox/SOS/Strike/sos.targets +++ /dev/null @@ -1,166 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="dogfood"> - <!--Import the settings--> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" /> - <Import Project="$(ClrBase)\src\debug\SetDebugTargetLocal.props" /> - <Import Project="$(ClrBase)\src\debug\XPlatCommon.props" /> - - <!-- Handle cross platform debugging: SOS is different from the DAC --> - <!-- in that one binary includes code targeting multiple platforms. --> - <!-- This means that there may be more than one SosTarget msbuild --> - <!-- symbol or SOS_TARGET_XYZ conditional defined at the same time. --> - <!-- The next section is what determines what code is built in which--> - <!-- binary. --> - <PropertyGroup> - <!-- Code level conditional compilation symbols to support x-plat --> - <CDefines Condition="'$(BuildArchitecture)' == 'i386'">$(CDefines);SOS_TARGET_X86=1</CDefines> - <CDefines Condition="'$(BuildArchitecture)' == 'arm' or '$(BuildArchitecture)' == 'i386'">$(CDefines);SOS_TARGET_ARM=1</CDefines> - <CDefines Condition="'$(BuildArchitecture)' == 'amd64'">$(CDefines);SOS_TARGET_AMD64=1</CDefines> - <CDefines Condition="'$(BuildArchitecture)' == 'amd64' or '$(BuildArchitecture)' == 'arm64'">$(CDefines);SOS_TARGET_ARM64=1</CDefines> - - <CDefines Condition="'$(BuildArchitecture)' == 'amd64' or '$(BuildArchitecture)' == 'arm64'">$(CDefines);_TARGET_WIN64_=1</CDefines> - </PropertyGroup> - - <!--Leaf project Properties--> - <PropertyGroup> - <SosSourceDir>$(ClrBase)\src\toolbox\sos\strike</SosSourceDir> - <CompilerWarnings> - </CompilerWarnings> - <UserIncludes> - $(SosSourceDir)\inc; - $(UserIncludes); - $(Clrbase)\src\vm; - $(Clrbase)\src\inc; - $(Clrbase)\src\gcdump; - $(Clrbase)\src\Debug\shim; - $(Clrbase)\src\coreclr\hosts\inc - </UserIncludes> - <OutputName>SOS</OutputName> - <FileToMarkForSigning>$(BinariesDirectory)\$(OutputName).dll</FileToMarkForSigning> - <TargetType>DYNLINK</TargetType> - <LinkSubsystem>windows</LinkSubsystem> - <Nxcompat>true</Nxcompat> - <SynchronizePass2Drain>true</SynchronizePass2Drain> - <DllDef>$(IntermediateOutputDirectory)\SOS.def</DllDef> - <DllEntryPoint>_DllMainCRTStartup</DllEntryPoint> - <LinkNoLibraries>true</LinkNoLibraries> - <UseMsvcrt>false</UseMsvcrt> - <Ltcg>false</Ltcg> - <LinkUseCMT>true</LinkUseCMT> - <UseStl>true</UseStl> - <ClAdditionalOptions Condition="'$(DebugBuild)' == 'true'">$(ClAdditionalOptions) -DDEBUG -D_DEBUG</ClAdditionalOptions> - <ClAdditionalOptions Condition="!('$(DebugBuild)' == 'true')">$(ClAdditionalOptions) -DFAST=1</ClAdditionalOptions> - <ClOptimization Condition="!('$(DebugBuild)' == 'true')">MaxSpeed</ClOptimization> - <ClAdditionalOptions Condition="'$(FeatureCoreSystem)' == 'true'">$(ClAdditionalOptions) -DFEATURE_CORESYSTEM</ClAdditionalOptions> - <MscOptimizations Condition="!('$(DebugBuild)' == 'true')"> - </MscOptimizations> - <ClAdditionalOptions>$(ClAdditionalOptions) -DSTRIKE -D_MT=1 -DORCAS=0 -DMDA_SUPPORTED -DDEBUGGING_SUPPORTED -DEnC_SUPPORTED -DPROFILING_SUPPORTED -DFEATURE_COMINTEROP -DFEATURE_COMINTEROP_UNMANAGED_ACTIVATION -DFEATURE_COMINTEROP_MANAGED_ACTIVATION -DFEATURE_COMINTEROP_APARTMENT_SUPPORT -DFEATURE_RWLOCK -DFEATURE_PREJIT -DFEATURE_STACK_PROBE -DFEATURE_SVR_GC -DFEATURE_CAS_POLICY -DFEATURE_CLICKONCE -DFEATURE_CRYPTO -DFEATURE_IMPERSONATION -DFEATURE_ISOSTORE -DFEATURE_MACL -DFEATURE_WATSON -DFEATURE_X509 -DFEATURE_X509_SECURESTRINGS -DFEATURE_COMINTEROP_REGISTRATION -DFEATURE_MIXEDMODE -DFEATURE_PERFMON -DFEATURE_REFLECTION_ONLY_LOAD -DFEATURE_FUSION -DFEATURE_SYNTHETIC_CULTURES -DFEATURE_SORT_TABLES -DFEATURE_CODEPAGES_FILE -DFEATURE_VALIDATOR -DFEATURE_WIN32_REGISTRY -DFEATURE_REMOTING -DFEATURE_SERIALIZATION -DFEATURE_ISYM_READER -DFEATURE_LOADER_OPTIMIZATION -DFEATURE_IPCMAN -DFEATURE_STRONGNAME_DELAY_SIGNING_ALLOWED -DFEATURE_MULTIMODULE_ASSEMBLIES -DFEATURE_METHOD_RENTAL -DFEATURE_APTCA -DFEATURE_USE_LCID -DFEATURE_BCL_FORMATTING -DENABLE_DOWNLEVEL_FOR_NLS -DFEATURE_INCLUDE_ALL_INTERFACES -DFEATURE_NONGENERIC_COLLECTIONS -DFEATURE_APPDOMAINMANAGER_INITOPTIONS -DFEATURE_COMPRESSEDSTACK -DFEATURE_PLS -DFEATURE_SYNCHRONIZATIONCONTEXT -DFEATURE_SYNCHRONIZATIONCONTEXT_WAIT -DUEF_CHAINING_SUPPORTED -DFEATURE_LEAK_CULTURE_INFO -DFEATURE_UEF_CHAINMANAGER -DFEATURE_CORRUPTING_EXCEPTIONS -DFEATURE_APPDOMAIN_RESOURCE_MONITORING -DFEATURE_EXCEPTION_NOTIFICATIONS -DFEATURE_LEGACY_THREADPOOL -DFEATURE_INTEROP_DEBUGGING</ClAdditionalOptions> - <ExceptionHandling>$(Fullcxxeh)</ExceptionHandling> - <!-- As part of X-plat DAC feature work we decided to put x86 SOS inside binaries\x86 subdirectory. - The pdb file will be places following the same subdir rule SymbolsDir\x86. - --> - <BinplaceRoot Condition="'$(BuildX86Sos)' == 'true'">$(BinariesDirectory)\x86</BinplaceRoot> - <BinplaceRoot Condition="'$(BuildX64Sos)' == 'true'">$(BinariesDirectory)\x64</BinplaceRoot> - <!-- Inhibit default behaviour of copying sos.pdb to Symbols.pri dir. --> - <BinplaceSymbols Condition="'$(BuildX86Sos)' == 'true' or '$(BuildX64Sos)' == 'true'">false</BinplaceSymbols> - <Verdir>$(InternalPath)\NDP\inc</Verdir> - <Bindir>$(BinariesDirectory)</Bindir> - </PropertyGroup> - - <ItemGroup> - <TargetLib Include="$(SdkLibPath)\kernel32.lib" /> - <TargetLib Include="$(SdkLibPath)\user32.lib" /> - <TargetLib Include="$(SdkLibPath)\ole32.lib" /> - <TargetLib Include="$(SdkLibPath)\oleaut32.lib" /> - <TargetLib Include="$(SdkLibPath)\dbghelp.lib" /> - <TargetLib Include="$(SdkLibPath)\uuid.lib" /> - <TargetLib Include="$(SdkLibPath)\version.lib" /> - <TargetLib Include="$(SdkLibPath)\dbgeng.lib" /> - <TargetLib Include="$(SdkLibPath)\advapi32.lib" /> - <TargetLib Include="$(SdkLibPath)\psapi.lib" /> - - <TargetLib Condition="'$(DebugBuild)' == 'true'" Include="$(VCPublicLibPath)\libcmtd.lib" /> - <TargetLib Condition="'$(DebugBuild)' != 'true'" Include="$(VCPublicLibPath)\libcmt.lib" /> - - <TargetLib Condition="'$(BuildX86Sos)' != 'true' and '$(BuildX64Sos)' != 'true'" Include="$(ClrLibPath)\corguids.lib"> - <ProjectReference>$(ClrSrcDirectory)inc\corguids.nativeproj</ProjectReference> - </TargetLib> - <TargetLib Condition="'$(BuildX86Sos)' == 'true'" Include="$(ClrLibPath)\corguids_x86.lib"> - <ProjectReference>$(ClrSrcDirectory)incx86\corguids.nativeproj</ProjectReference> - </TargetLib> - <TargetLib Condition="'$(BuildX64Sos)' == 'true'" Include="$(ClrLibPath)\corguids_amd64.lib"> - <ProjectReference>$(ClrSrcDirectory)incamd64\corguids.nativeproj</ProjectReference> - </TargetLib> - - <TargetLib Include="$(ClrLibPath)\debugshim$(XPlatHostLibSuffix).lib"> - <ProjectReference>$(ClrSrcDirectory)\Debug\shim\$(XPlatHostLibBuildDir)\debugshim.nativeproj</ProjectReference> - </TargetLib> - <TargetLib Include="$(ClrLibPath)\dbgutil$(XPlatHostLibSuffix).lib"> - <ProjectReference>$(ClrSrcDirectory)\Debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj</ProjectReference> - </TargetLib> - </ItemGroup> - <ItemGroup> - <TargetLib Include="$(SdkLibPath)\ntdll.lib" /> - </ItemGroup> - <ItemGroup> - <RCResourceFile Condition="'$(FeatureCoreSystem)'!='true'" Include="$(SosSourceDir)\Native.rc" /> - <RCResourceFile Condition="'$(FeatureCoreSystem)'=='true'" Include="$(SosSourceDir)\ApolloNative.rc" /> - </ItemGroup> - <ItemGroup> - <CppCompile Include="$(SosSourceDir)\disasm.cpp" /> - <CppCompile Include="$(SosSourceDir)\dllsext.cpp" /> - <CppCompile Include="$(SosSourceDir)\eeheap.cpp" /> - <CppCompile Include="$(SosSourceDir)\EventCallbacks.cpp" /> - <CppCompile Include="$(SosSourceDir)\ExpressionNode.cpp" /> - <CppCompile Include="$(SosSourceDir)\exts.cpp" /> - <CppCompile Include="$(SosSourceDir)\gchist.cpp" /> - <CppCompile Include="$(SosSourceDir)\gcroot.cpp" /> - <CppCompile Include="$(SosSourceDir)\metadata.cpp" /> - <CppCompile Include="$(SosSourceDir)\sildasm.cpp" /> - <CppCompile Include="$(SosSourceDir)\sos.cpp" /> - <CppCompile Include="$(SosSourceDir)\stressLogDump.cpp" /> - <CppCompile Include="$(SosSourceDir)\strike.cpp" /> - <CppCompile Include="$(SosSourceDir)\util.cpp" /> - <CppCompile Include="$(SosSourceDir)\vm.cpp" /> - <CppCompile Include="$(SosSourceDir)\WatchCmd.cpp" /> - <CppPreprocess Include="$(SosSourceDir)\SOS.def"> - <FinalOutput>$(IntermediateOutputDirectory)\SOS.def</FinalOutput> - <AdditionalOptions>$(ClAdditionalOptions) /TC</AdditionalOptions> - </CppPreprocess> - </ItemGroup> - <ItemGroup> - <CppCompile Condition="'$(BuildArchitecture)' == 'i386'" Include="$(SosSourceDir)\disasmX86.cpp" /> - <CppCompile Condition="'$(BuildArchitecture)' == 'amd64'" Include="$(SosSourceDir)\disasmX86.cpp" /> - <CppCompile Condition="'$(BuildArchitecture)' == 'arm' or '$(BuildArchitecture)' == 'i386'" Include="$(SosSourceDir)\disasmARM.cpp" /> - <CppCompile Condition="'$(BuildArchitecture)' == 'arm64' or '$(BuildArchitecture)' == 'amd64'" Include="$(SosSourceDir)\disasmARM64.cpp" /> - <RotorX86Sources Include="$(SosSourceDir)\disasmX86.cpp" /> - </ItemGroup> - <ItemGroup> - <DataFile Include="$(SosSourceDir)\sos_stacktrace.h" /> - </ItemGroup> - <ItemGroup> - <PublishPartGenerated Include="$(SosSourceDir)\sos_stacktrace.h"> - <Visibility>Intra</Visibility> - <FileType>Include</FileType> - </PublishPartGenerated> - </ItemGroup> - - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" /> - - <PropertyGroup> - <BuildLinkedDependsOn>$(BuildLinkedDependsOn);GenLongNameSOS</BuildLinkedDependsOn> - </PropertyGroup> - - <UsingTask TaskName="GetFileVersionTask" AssemblyFile="$(ClrSrcDirectory)dlls\mscordac\GetFileVersion.dll"/> - - <Target Name="GenLongNameSOS" - Inputs="$(Verdir)\version.h;$(IntermediateOutputDirectory)\sos.dll" - Outputs="sos_upd"> - <GetFileVersionTask FilePath="$(IntermediateOutputDirectory)\sos.dll"> - <Output TaskParameter="FileVersion" PropertyName="SOSFileVersion"/> - </GetFileVersionTask> - <Exec Command="$(PerlCommand) -I$(DevDivToolsPath) $(ClrSrcDirectory)dlls\mscordac\Update.pl $(IntermediateOutputDirectory)\sos.dll sos $(HostMachineArch) $(_EnvironmentMachineArch) $(SOSFileVersion) $(Bindir) echo" StandardOutputImportance="Normal" /> - - </Target> - -</Project> diff --git a/src/ToolBox/SOS/Strike/strike.h b/src/ToolBox/SOS/Strike/strike.h index e070898ff5..dfc0dcfea4 100644 --- a/src/ToolBox/SOS/Strike/strike.h +++ b/src/ToolBox/SOS/Strike/strike.h @@ -44,10 +44,6 @@ #define _wcsstr wcsstr #endif // !PAL_STDCPP_COMPAT -#ifdef PLATFORM_UNIX -#define _vsnprintf vsnprintf -#endif - #define ___in _SAL1_Source_(__in, (), _In_) #define ___out _SAL1_Source_(__out, (), _Out_) diff --git a/src/ToolBox/SOS/Strike/xplat/dbgeng.h b/src/ToolBox/SOS/Strike/xplat/dbgeng.h index b4562271a6..5dcf9572bb 100644 --- a/src/ToolBox/SOS/Strike/xplat/dbgeng.h +++ b/src/ToolBox/SOS/Strike/xplat/dbgeng.h @@ -84,7 +84,7 @@ public: va_list args) { char str[4096]; - int length = PAL__vsnprintf(str, sizeof(str), format, args); + int length = _vsnprintf_s(str, sizeof(str), _TRUNCATE, format, args); if (length > 0) { return Output(mask, "%s", str); diff --git a/src/ToolBox/SOS/diasdk/diasdk.nativeproj b/src/ToolBox/SOS/diasdk/diasdk.nativeproj deleted file mode 100644 index 230e2d9f93..0000000000 --- a/src/ToolBox/SOS/diasdk/diasdk.nativeproj +++ /dev/null @@ -1,43 +0,0 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="dogfood"> - <!--*****************************************************--> - <!--This MSBuild project file was automatically generated--> - <!--from the original SOURCES/DIRS file by the KBC tool.--> - <!--*****************************************************--> - <!--Import the settings--> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" /> - <!--Leaf project Properties--> - <PropertyGroup> - <BuildCoreBinaries>true</BuildCoreBinaries> - <OutputName>DIALib</OutputName> - <TargetType>DLLFROMIDL</TargetType> - <AssemblyAttributeComVisible>true</AssemblyAttributeComVisible> - <UserIncludes>$(UserIncludes); - $(VCToolsIncPath)</UserIncludes> - <MidlTlbDir>$(IntermediateOutputDirectory)</MidlTlbDir> - <TlbImportFlags>/namespace:Dia /unsafe</TlbImportFlags> - </PropertyGroup> - - <ItemGroup> - <Idl Include="$(VCToolsIncPath)\dia2.idl" /> - <PublishPartLinked Include="$(IntermediateOutputDirectory)\dialib.dll"> - <Visibility>Intra</Visibility> - <FileType>Binary</FileType> - </PublishPartLinked> - </ItemGroup> - - <ItemGroup> - <RCResourceFile Include="native.rc" /> - </ItemGroup> - - <!--Leaf Project Items--> - <!--Import the targets--> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" /> - - <PropertyGroup> - <BuildLinkedDependsOn> - $(BuildLinkedDependsOn) - PlaceSymbols - </BuildLinkedDependsOn> - </PropertyGroup> - -</Project> diff --git a/src/ToolBox/SOS/dirs.proj b/src/ToolBox/SOS/dirs.proj deleted file mode 100644 index 85bea0d39a..0000000000 --- a/src/ToolBox/SOS/dirs.proj +++ /dev/null @@ -1,32 +0,0 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <!--Import the settings--> - <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" /> - - <PropertyGroup> - <BuildInPhase1>true</BuildInPhase1> - <BuildInPhaseDefault>false</BuildInPhaseDefault> - <BuildCoreBinaries>true</BuildCoreBinaries> - <BuildSysBinaries>true</BuildSysBinaries> - </PropertyGroup> - - <ItemDefinitionGroup> - <ProjectFile> - <ProductGroups>FX</ProductGroups> - </ProjectFile> - </ItemDefinitionGroup> - - <ItemGroup Condition="'$(BuildExePhase)' == '1'"> - <ProjectFile Include="strike\dirs.proj" /> - </ItemGroup> - - <ItemGroup Condition="'$(BuildExePhase)' == '1' and '$(BuildArchitecture)' == 'i386' and '$(FeatureCoreClr)' != 'true'"> - <ProjectFile Include="diasdk\diasdk.nativeproj" > - <ProductGroups>FX;PK</ProductGroups> - </ProjectFile> - <ProjectFile Include="dactablegen\dactablegen.csproj" > - <ProductGroups>FX;PK</ProductGroups> - </ProjectFile> - </ItemGroup> - - <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" /> -</Project> diff --git a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt index 7f1fa7704f..29b36e8fa2 100644 --- a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt +++ b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt @@ -30,8 +30,11 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM) add_definitions(-DDBG_TARGET_32BIT=1) add_definitions(-DDBG_TARGET_ARM=1) elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64) - message(WARNING "lldb is not supported on linux/aarch64 yet") - return() + add_definitions(-D_TARGET_ARM64_=1) + add_definitions(-DDBG_TARGET_64BIT=1) + add_definitions(-DDBG_TARGET_ARM64=1) + add_definitions(-DDBG_TARGET_WIN64=1) + add_definitions(-DBIT64) endif() set(ENABLE_LLDBPLUGIN ${CLR_CMAKE_PLATFORM_UNIX} CACHE BOOL "Enable building the SOS plugin for LLDB.") @@ -49,13 +52,13 @@ if(NOT ENABLE_LLDBPLUGIN) endif() # Check for LLDB library -find_library(LLDB NAMES LLDB lldb lldb-3.8 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH) -find_library(LLDB NAMES LLDB lldb lldb-3.8 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm) +find_library(LLDB NAMES LLDB lldb lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH) +find_library(LLDB NAMES LLDB lldb lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm) if(LLDB STREQUAL LLDB-NOTFOUND) if(REQUIRE_LLDBPLUGIN) - message(FATAL_ERROR "Cannot find lldb-3.5, lldb-3.6 or lldb-3.8. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + message(FATAL_ERROR "Cannot find lldb-3.5, lldb-3.6, lldb-3.8 or lldb-3.9. Try installing lldb-3.6-dev (or the appropriate package for your platform)") else() - message(WARNING "Cannot find lldb-3.5,lldb-3.6 or lldb-3.8. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + message(WARNING "Cannot find lldb-3.5,lldb-3.6, lldb-3.8 or lldb-3.9. Try installing lldb-3.6-dev (or the appropriate package for your platform)") endif() return() endif() @@ -63,25 +66,24 @@ endif() message(STATUS "LLDB: ${LLDB}") # Check for LLDB headers - +# Multiple versions of LLDB can install side-by-side, so we need to check for lldb in various locations. +# If the file in a directory is found the result is stored in the variable and the search will not be repeated unless the variable is cleared. find_path(LLDB_H "lldb/API/LLDB.h" PATHS "${WITH_LLDB_INCLUDES}" NO_DEFAULT_PATH) find_path(LLDB_H "lldb/API/LLDB.h") + +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.9/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.8/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.7/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.6/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.5/include") + if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.8/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.6/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.5/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - if(REQUIRE_LLDBPLUGIN) - message(FATAL_ERROR "Cannot find LLDB.h. Try installing lldb-3.6-dev (or the appropriate package for your platform)") - else() - message(WARNING "Cannot find LLDB.h Try installing lldb-3.6-dev (or the appropriate package for your platform)") - endif() - return() - endif() - endif() + if(REQUIRE_LLDBPLUGIN) + message(FATAL_ERROR "Cannot find LLDB.h. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + else() + message(WARNING "Cannot find LLDB.h Try installing lldb-3.6-dev (or the appropriate package for your platform)") endif() + return() endif() message(STATUS "LLDB_H: ${LLDB_H}") diff --git a/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h b/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h index 16702b116d..4817e811df 100644 --- a/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h +++ b/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h @@ -81,6 +81,7 @@ extern "C" { #define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. #define IMAGE_FILE_MACHINE_ARMNT 0x01c4 // ARM Thumb-2 Little-Endian #define IMAGE_FILE_MACHINE_AMD64 0x8664 // AMD64 (K8) +#define IMAGE_FILE_MACHINE_ARM64 0xAA64 // ARM64 Little-Endian // Execution status codes used for waiting, // for returning current status and for diff --git a/src/ToolBox/SOS/lldbplugin/services.cpp b/src/ToolBox/SOS/lldbplugin/services.cpp index d2d2cf9f8e..e3eee4fc59 100644 --- a/src/ToolBox/SOS/lldbplugin/services.cpp +++ b/src/ToolBox/SOS/lldbplugin/services.cpp @@ -171,6 +171,10 @@ LLDBServices::VirtualUnwind( DWORD spToFind = dtcontext->Esp; #elif DBG_TARGET_ARM DWORD spToFind = dtcontext->Sp; +#elif DBG_TARGET_ARM64 + DWORD64 spToFind = dtcontext->Sp; +#else +#error "spToFind undefined for this platform" #endif int numFrames = thread.GetNumFrames(); @@ -407,6 +411,12 @@ LLDBServices::GetExecutingProcessorType( *type = IMAGE_FILE_MACHINE_AMD64; #elif DBG_TARGET_ARM *type = IMAGE_FILE_MACHINE_ARMNT; +#elif DBG_TARGET_ARM64 + *type = IMAGE_FILE_MACHINE_ARM64; +#elif DBG_TARGET_X86 + *type = IMAGE_FILE_MACHINE_I386; +#else +#error "Unsupported target" #endif return S_OK; } |