summaryrefslogtreecommitdiff
path: root/src/ToolBox/SOS
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2017-02-10 20:35:12 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2017-02-10 20:35:12 +0900
commit4b11dc566a5bbfa1378d6266525c281b028abcc8 (patch)
treeb48831a898906734f8884d08b6e18f1144ee2b82 /src/ToolBox/SOS
parentdb20f3f1bb8595633a7e16c8900fd401a453a6b5 (diff)
downloadcoreclr-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.nativeproj7
-rw-r--r--src/ToolBox/SOS/Strike/SOS.sln76
-rw-r--r--src/ToolBox/SOS/Strike/SOS.vcproj303
-rw-r--r--src/ToolBox/SOS/Strike/dirs.proj20
-rw-r--r--src/ToolBox/SOS/Strike/disasmARM.cpp1
-rw-r--r--src/ToolBox/SOS/Strike/eeheap.cpp4
-rw-r--r--src/ToolBox/SOS/Strike/exts.cpp15
-rw-r--r--src/ToolBox/SOS/Strike/inc/dbgeng.h18
-rw-r--r--src/ToolBox/SOS/Strike/sos.targets166
-rw-r--r--src/ToolBox/SOS/Strike/strike.h4
-rw-r--r--src/ToolBox/SOS/Strike/xplat/dbgeng.h2
-rw-r--r--src/ToolBox/SOS/diasdk/diasdk.nativeproj43
-rw-r--r--src/ToolBox/SOS/dirs.proj32
-rw-r--r--src/ToolBox/SOS/lldbplugin/CMakeLists.txt44
-rw-r--r--src/ToolBox/SOS/lldbplugin/inc/lldbservices.h1
-rw-r--r--src/ToolBox/SOS/lldbplugin/services.cpp10
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;
}