summaryrefslogtreecommitdiff
path: root/src/debug
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug')
-rw-r--r--src/debug/daccess/daccess.targets73
-rw-r--r--src/debug/daccess/dacdbiimplstackwalk.cpp16
-rw-r--r--src/debug/daccess/dacfn.cpp2
-rw-r--r--src/debug/daccess/datatargetadapter.cpp6
-rw-r--r--src/debug/daccess/dirs.proj19
-rw-r--r--src/debug/daccess/enummem.cpp4
-rw-r--r--src/debug/dbgutil/dbgutil.props14
-rw-r--r--src/debug/dbgutil/dirs.proj16
-rw-r--r--src/debug/di/DI.props86
-rw-r--r--src/debug/di/dbi.sln20
-rw-r--r--src/debug/di/dbi.vcxproj143
-rw-r--r--src/debug/di/dirs.proj18
-rw-r--r--src/debug/di/rspriv.h4
-rw-r--r--src/debug/di/rsthread.cpp4
-rw-r--r--src/debug/dirs.proj23
-rw-r--r--src/debug/ee/DIRS.proj20
-rw-r--r--src/debug/ee/DebuggerEE.vcproj107
-rw-r--r--src/debug/ee/EE.props60
-rw-r--r--src/debug/ee/amd64/amd64walker.cpp5
-rw-r--r--src/debug/ee/arm64/dbghelpers.S25
-rw-r--r--src/debug/ee/dac/dirs.proj19
-rw-r--r--src/debug/ee/debugger.cpp13
-rw-r--r--src/debug/ee/debugger.inl16
-rw-r--r--src/debug/ee/i386/x86walker.cpp16
-rw-r--r--src/debug/ee/wks/CMakeLists.txt2
-rw-r--r--src/debug/ee/wks/wks.nativeproj43
-rw-r--r--src/debug/ildbsymlib/dirs.proj19
-rw-r--r--src/debug/ildbsymlib/ildbsymlib.props29
-rw-r--r--src/debug/ildbsymlib/ildbsymlib.vcproj213
-rw-r--r--src/debug/inc/dbgipcevents.h4
-rw-r--r--src/debug/inc/dbgtargetcontext.h18
-rw-r--r--src/debug/shared/i386/primitives.cpp14
-rw-r--r--src/debug/shim/debugshim.props19
-rw-r--r--src/debug/shim/dirs.proj16
34 files changed, 97 insertions, 1009 deletions
diff --git a/src/debug/daccess/daccess.targets b/src/debug/daccess/daccess.targets
deleted file mode 100644
index 43da554..0000000
--- a/src/debug/daccess/daccess.targets
+++ /dev/null
@@ -1,73 +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-->
- <PropertyGroup>
- <!-- Work around problems with loading System.Private.CoreLib.dll, -->
- <!-- caused by inconsistent setting of UseLegacyCompiler and FeatureSpanOfT -->
- <!-- between System.Private.CoreLib.dll and the runtime. -->
- <UseLegacyCompiler>true</UseLegacyCompiler>
- </PropertyGroup>
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\dac.props" />
- <Import Project="..\SetDebugTargetLocal.props" />
- <!--Leaf project Properties-->
- <PropertyGroup>
- <UseStl Condition="'$(BuildForCoreSystem)' != 'true'">true</UseStl>
- <DaccessSrcDirectory>$(ClrSrcDirectory)\debug\daccess</DaccessSrcDirectory>
- <UserIncludes>$(UserIncludes);
- $(DaccessSrcDirectory);
- $(ClrSrcDirectory)\vm;
- $(ClrSrcDirectory)\vm\$(TargetCpu);
- $(ClrSrcDirectory)\debug\inc;
- $(ClrSrcDirectory)\debug\inc\$(TargetCpu);
- $(ClrSrcDirectory)\debug\inc\dump;
- $(ClrSrcDirectory)\debug\ee;
- $(ClrSrcDirectory)\inc;
- $(ClrSrcDirectory)\inc\$(IntermediateOutputDirectory);
- $(VCToolsIncPath);
- $(ClrSrcDirectory)\gcdump;
- $(ClrSrcDirectory)\md\inc;
- $(ClrSrcDirectory)\gc;
- $(ClrSrcDirectory)\strongname\inc</UserIncludes>
- <CDefines>$(CDefines);UNICODE;_UNICODE;$(USER_SPECIFIC_C_DEFINES);FEATURE_NO_HOST</CDefines>
- <OutputName Condition="'$(OutputName)' == ''">dac_wks</OutputName>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <TargetType>LIBRARY</TargetType>
- <PCHHeader>stdafx.h</PCHHeader>
- <EnableCxxPCHHeaders>true</EnableCxxPCHHeaders>
- <PCHCompile>$(DaccessSrcDirectory)\stdafx.cpp</PCHCompile>
- </PropertyGroup>
- <!--Leaf Project Items-->
- <ItemGroup>
- <ProjectReference Include="$(ClrSrcDirectory)inc\corguids.nativeproj" />
- </ItemGroup>
-
- <ItemGroup>
- <CppCompile Include="$(DaccessSrcDirectory)\dacdbiimpl.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\dacdbiimpllocks.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\dacdbiimplstackwalk.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\daccess.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\dacfn.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\enummem.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\fntableaccess.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\inspect.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\reimpl.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\request.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\request_svr.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\stack.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\task.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\nidump.cpp" />
- <CppCompile Include="$(DaccessSrcDirectory)\datatargetadapter.cpp" />
- </ItemGroup>
- <ItemGroup>
- <CppCompile Condition="'$(TargetArch)' == 'i386'" Include="$(DaccessSrcDirectory)\i386\primitives.cpp" />
- <CppCompile Condition="'$(TargetArch)' == 'amd64'" Include="$(DaccessSrcDirectory)\amd64\primitives.cpp" />
- <CppCompile Condition="'$(TargetArch)' == 'arm'" Include="$(DaccessSrcDirectory)\arm\primitives.cpp" />
- <CppCompile Condition="'$(TargetArch)' == 'arm64'" Include="$(DaccessSrcDirectory)\arm64\primitives.cpp" />
- </ItemGroup>
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" />
-</Project>
diff --git a/src/debug/daccess/dacdbiimplstackwalk.cpp b/src/debug/daccess/dacdbiimplstackwalk.cpp
index d3a2a63..29c9626 100644
--- a/src/debug/daccess/dacdbiimplstackwalk.cpp
+++ b/src/debug/daccess/dacdbiimplstackwalk.cpp
@@ -1156,14 +1156,14 @@ void DacDbiInterfaceImpl::UpdateContextFromRegDisp(REGDISPLAY * pRegDisp,
// Do a partial copy first.
pContext->ContextFlags = (CONTEXT_INTEGER | CONTEXT_CONTROL);
- pContext->Edi = *pRegDisp->pEdi;
- pContext->Esi = *pRegDisp->pEsi;
- pContext->Ebx = *pRegDisp->pEbx;
- pContext->Ebp = *pRegDisp->pEbp;
- pContext->Eax = *pRegDisp->pEax;
- pContext->Ecx = *pRegDisp->pEcx;
- pContext->Edx = *pRegDisp->pEdx;
- pContext->Esp = pRegDisp->Esp;
+ pContext->Edi = *pRegDisp->GetEdiLocation();
+ pContext->Esi = *pRegDisp->GetEsiLocation();
+ pContext->Ebx = *pRegDisp->GetEbxLocation();
+ pContext->Ebp = *pRegDisp->GetEbpLocation();
+ pContext->Eax = *pRegDisp->GetEaxLocation();
+ pContext->Ecx = *pRegDisp->GetEcxLocation();
+ pContext->Edx = *pRegDisp->GetEdxLocation();
+ pContext->Esp = pRegDisp->SP;
pContext->Eip = pRegDisp->ControlPC;
// If we still have the pointer to the leaf CONTEXT, and the leaf CONTEXT is the same as the CONTEXT for
diff --git a/src/debug/daccess/dacfn.cpp b/src/debug/daccess/dacfn.cpp
index d8bae77..33dfa10 100644
--- a/src/debug/daccess/dacfn.cpp
+++ b/src/debug/daccess/dacfn.cpp
@@ -219,7 +219,7 @@ DacWriteAll(TADDR addr, PVOID buffer, ULONG32 size, bool throwEx)
#ifdef FEATURE_PAL
HRESULT
-DacVirtualUnwind(DWORD threadId, PCONTEXT context, PT_KNONVOLATILE_CONTEXT_POINTERS contextPointers)
+DacVirtualUnwind(DWORD threadId, PT_CONTEXT context, PT_KNONVOLATILE_CONTEXT_POINTERS contextPointers)
{
if (!g_dacImpl)
{
diff --git a/src/debug/daccess/datatargetadapter.cpp b/src/debug/daccess/datatargetadapter.cpp
index f2a1cc6..4d4031d 100644
--- a/src/debug/daccess/datatargetadapter.cpp
+++ b/src/debug/daccess/datatargetadapter.cpp
@@ -127,8 +127,12 @@ DataTargetAdapter::GetPlatform(
platform = CORDB_PLATFORM_POSIX_ARM;
break;
- case IMAGE_FILE_MACHINE_IA64:
case IMAGE_FILE_MACHINE_ARM64:
+ ulExpectedPointerSize = 8;
+ platform = CORDB_PLATFORM_POSIX_ARM64;
+ break;
+
+ case IMAGE_FILE_MACHINE_IA64:
_ASSERTE_MSG(false, "Not supported platform.");
return E_NOTIMPL;
diff --git a/src/debug/daccess/dirs.proj b/src/debug/daccess/dirs.proj
deleted file mode 100644
index 795d462..0000000
--- a/src/debug/daccess/dirs.proj
+++ /dev/null
@@ -1,19 +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>
-
- <!--The following projects will build during PHASE 1-->
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Include="HostLocal\daccess.nativeproj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/daccess/enummem.cpp b/src/debug/daccess/enummem.cpp
index d66af05..0f38aa5 100644
--- a/src/debug/daccess/enummem.cpp
+++ b/src/debug/daccess/enummem.cpp
@@ -970,7 +970,7 @@ HRESULT ClrDataAccess::EnumMemWalkStackHelper(CLRDataEnumMemoryFlags flags,
// Pulls in sequence points and local variable info
DebugInfoManager::EnumMemoryRegionsForMethodDebugInfo(flags, pMethodDesc);
-#ifdef WIN64EXCEPTIONS
+#if defined(WIN64EXCEPTIONS) && defined(USE_GC_INFO_DECODER)
if (addr != NULL)
{
@@ -988,7 +988,7 @@ HRESULT ClrDataAccess::EnumMemWalkStackHelper(CLRDataEnumMemoryFlags flags,
DacEnumMemoryRegion(dac_cast<TADDR>(pGCInfo), gcDecoder.GetNumBytesRead(), true);
}
}
-#endif // WIN64EXCEPTIONS
+#endif // WIN64EXCEPTIONS && USE_GC_INFO_DECODER
}
pMethodDefinition.Clear();
}
diff --git a/src/debug/dbgutil/dbgutil.props b/src/debug/dbgutil/dbgutil.props
deleted file mode 100644
index 520b2c6..0000000
--- a/src/debug/dbgutil/dbgutil.props
+++ /dev/null
@@ -1,14 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <TargetType>LIBRARY</TargetType>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <LinkSubsystem>windows</LinkSubsystem>
- <UseMsvcrt />
- <ExceptionHandling>$(Sehonly)</ExceptionHandling>
- <UserIncludes>$(UserIncludes);$(Clrbase)\src\Debug\inc;</UserIncludes>
- <CDefines>$(CDefines);UNICODE;_UNICODE</CDefines>
- </PropertyGroup>
- <ItemGroup>
- <CppCompile Include="$(Clrbase)\src\Debug\dbgutil\dbgutil.cpp" />
- </ItemGroup>
-</Project>
diff --git a/src/debug/dbgutil/dirs.proj b/src/debug/dbgutil/dirs.proj
deleted file mode 100644
index f4c41b9..0000000
--- a/src/debug/dbgutil/dirs.proj
+++ /dev/null
@@ -1,16 +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 Include="HostLocal\dbgutil.nativeproj" />
- </ItemGroup>
-
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/di/DI.props b/src/debug/di/DI.props
deleted file mode 100644
index 1d7336d..0000000
--- a/src/debug/di/DI.props
+++ /dev/null
@@ -1,86 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!--*****************************************************-->
- <!--This MSBuild project file was automatically generated-->
- <!--from the original SOURCES/DIRS file by the KBC tool.-->
- <!--*****************************************************-->
- <!-- These features need to be enabled for each build artifact that wants to use them, they aren't controlled at the SKU level-->
- <PropertyGroup>
- <FeatureMetadataCustomDataSource>true</FeatureMetadataCustomDataSource>
- <FeatureMetadataDebuggeeDataSource>true</FeatureMetadataDebuggeeDataSource>
- </PropertyGroup>
- <!--Import the settings-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\Debug\XPlatCommon.props"/>
- <!--Leaf project Properties-->
- <PropertyGroup>
- <UserIncludes>
- $(UserIncludes);
- ..;
- ..\..\inc;
- ..\..\inc\dump;
- ..\..\..\vm;
- $(VCToolsIncPath);
- </UserIncludes>
- <ClAdditionalOptions>$(ClAdditionalOptions) -DUNICODE -D_UNICODE -DFEATURE_NO_HOST -DFEATURE_METADATA_LOAD_TRUSTED_IMAGES</ClAdditionalOptions>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <TargetType>LIBRARY</TargetType>
- <PCHHeader Condition="'$(CCOVER)' == ''">stdafx.h</PCHHeader>
- <EnableCxxPCHHeaders Condition="'$(CCOVER)' == ''">true</EnableCxxPCHHeaders>
- <!--PCH: Both precompiled header and cpp are on the same ..\ path this is likely to be wrong.-->
- <PCHCompile Condition="'$(CCOVER)' == ''">..\stdafx.cpp</PCHCompile>
- <LinkNoLibraries>true</LinkNoLibraries>
- <LinkUseCMT>true</LinkUseCMT>
- <UseMsvcrt />
- </PropertyGroup>
- <!--Leaf Project Items-->
- <ItemGroup>
- <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostLocal'" Include="$(ClrSrcDirectory)inc\corguids.nativeproj" />
- <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinx86'" Include="$(ClrSrcDirectory)incx86\corguids.nativeproj" />
- <ProjectReference Condition="'$(XPlatHostLibBuildDir)'=='HostWinAMD64'" Include="$(ClrSrcDirectory)incamd64\corguids.nativeproj" />
- </ItemGroup>
- <ItemGroup>
- <SourcesPublish Include="..\publish.cpp" />
- </ItemGroup>
- <ItemGroup>
- <SourcesShim Include="..\ShimProcess.cpp" />
- <SourcesShim Include="..\ShimCallback.cpp" />
- <SourcesShim Include="..\ShimEvents.cpp" />
- <SourcesShim Include="..\ShimDataTarget.cpp" />
- <SourcesShim Include="..\ShimStackWalk.cpp" />
- </ItemGroup>
- <ItemGroup>
- <SourcesRightside Include="..\breakpoint.cpp" />
- <SourcesRightside Include="..\cordb.cpp" />
- <SourcesRightside Include="..\DbgTransportManager.cpp" />
- <SourcesRightside Include="..\DIValue.cpp" />
- <SourcesRightside Include="..\hash.cpp" />
- <SourcesRightside Include="..\module.cpp" />
- <SourcesRightside Include="..\NativePipeline.cpp" />
- <SourcesRightside Include="..\PlatformSpecific.cpp" />
- <SourcesRightside Include="..\process.cpp" />
- <SourcesRightside Include="..\RsAppDomain.cpp" />
- <SourcesRightside Include="..\RsAssembly.cpp" />
- <SourcesRightside Include="..\RsClass.cpp" />
- <SourcesRightside Include="..\RsFunction.cpp" />
- <SourcesRightside Include="..\RsMain.cpp" />
- <SourcesRightside Include="..\RsMda.cpp" />
- <SourcesRightside Include="..\RsRegSetCommon.cpp" />
- <SourcesRightside Include="..\RsStackWalk.cpp" />
- <SourcesRightside Include="..\RsThread.cpp" />
- <SourcesRightside Include="..\RsType.cpp" />
- <SourcesRightside Include="..\shared.cpp" />
- <SourcesRightside Include="..\symbolinfo.cpp" />
- <SourcesRightside Include="..\ValueHome.cpp" />
- </ItemGroup>
- <ItemGroup>
- <CppCompile Include="@(SourcesPublish)" />
- <CppCompile Include="@(SourcesShim)" />
- <CppCompile Include="@(SourcesRightside)" />
- <AssembleAmd64 Condition="'$(BuildArchitecture)' == 'amd64' and '$(CrossTargetArchitecture)' != 'arm64'" Include="..\amd64\floatconversion.asm" />
- </ItemGroup>
- <ItemGroup Condition="'$(BuildArchitecture)' == 'arm64'">
- <PreprocessAssembleArm Include="..\arm64\floatconversion.asm" />
- <AssembleArm64 Include="$(IntermediateOutputDirectory)\floatconversion.i" />
- </ItemGroup>
- <!--Import the targets-->
-</Project>
diff --git a/src/debug/di/dbi.sln b/src/debug/di/dbi.sln
deleted file mode 100644
index 33cbec1..0000000
--- a/src/debug/di/dbi.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbi", "dbi.vcxproj", "{D8445C62-03DC-4D6A-A2F2-1AAF31577151}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Debug|Win32.ActiveCfg = Debug|Win32
- {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Debug|Win32.Build.0 = Debug|Win32
- {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Release|Win32.ActiveCfg = Release|Win32
- {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/src/debug/di/dbi.vcxproj b/src/debug/di/dbi.vcxproj
deleted file mode 100644
index 08533b7..0000000
--- a/src/debug/di/dbi.vcxproj
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{D8445C62-03DC-4D6A-A2F2-1AAF31577151}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>dbi</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v110</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;DBI_EXPORTS;DBG_TARGET_X86;_TARGET_X86_;VS_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\inc;..\..\inc;C:\clr_next\src\InternalApis\Sys_clr\inc;C:\CLR_Next\binaries\amd64chk\IntraPartitionAPIs\clr\inc;C:\CLR_Next\src\ndp\Common\Inc\version;C:\CLR_Next\binaries\amd64chk\SysBuild\Version;..\inc\i386;..\inc\dump</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DBI_EXPORTS;DBG_TARGET_X86;_TARGET_X86_;VS_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\inc;..\..\inc;C:\clr_next\src\InternalApis\Sys_clr\inc;C:\CLR_Next\binaries\amd64chk\IntraPartitionAPIs\clr\inc;C:\CLR_Next\src\ndp\Common\Inc\version;C:\CLR_Next\binaries\amd64chk\SysBuild\Version;;..\inc\i386</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="classfactory.h" />
- <ClInclude Include="DbgTransportManager.h" />
- <ClInclude Include="DDPack.h" />
- <ClInclude Include="EventChannel.h" />
- <ClInclude Include="EventRedirectionPipeline.h" />
- <ClInclude Include="helpers.h" />
- <ClInclude Include="NativePipeline.h" />
- <ClInclude Include="RsEnumerator.hpp" />
- <ClInclude Include="RSPriv.h" />
- <ClInclude Include="ShimDataTarget.h" />
- <ClInclude Include="shimpriv.h" />
- <ClInclude Include="StdAfx.h" />
- <ClInclude Include="symbolinfo.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="RSPriv.inl" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="breakpoint.cpp" />
- <ClCompile Include="cordb.cpp" />
- <ClCompile Include="DbgTransportManager.cpp" />
- <ClCompile Include="DbgTransportPipeline.cpp" />
- <ClCompile Include="DDPack.cpp" />
- <ClCompile Include="DIValue.cpp" />
- <ClCompile Include="EventRedirectionPipeline.cpp" />
- <ClCompile Include="hash.cpp" />
- <ClCompile Include="i386\CordbRegisterSet.cpp" />
- <ClCompile Include="i386\primitives.cpp" />
- <ClCompile Include="LocalEventChannel.cpp" />
- <ClCompile Include="module.cpp" />
- <ClCompile Include="NativePipeline.cpp" />
- <ClCompile Include="PlatformSpecific.cpp" />
- <ClCompile Include="process.cpp" />
- <ClCompile Include="publish.cpp" />
- <ClCompile Include="RemoteEventChannel.cpp" />
- <ClCompile Include="RotorPipeline.cpp" />
- <ClCompile Include="RsAppDomain.cpp" />
- <ClCompile Include="RsAssembly.cpp" />
- <ClCompile Include="rsclass.cpp" />
- <ClCompile Include="rsfunction.cpp" />
- <ClCompile Include="RsMain.cpp" />
- <ClCompile Include="RsMda.cpp" />
- <ClCompile Include="RSRegSetCommon.cpp" />
- <ClCompile Include="RsStackWalk.cpp" />
- <ClCompile Include="RsThread.cpp" />
- <ClCompile Include="RsType.cpp" />
- <ClCompile Include="shared.cpp" />
- <ClCompile Include="shimcallback.cpp" />
- <ClCompile Include="ShimDataTarget.cpp" />
- <ClCompile Include="ShimEvents.cpp" />
- <ClCompile Include="ShimLocalDataTarget.cpp" />
- <ClCompile Include="ShimProcess.cpp" />
- <ClCompile Include="ShimRemoteDataTarget.cpp" />
- <ClCompile Include="ShimStackWalk.cpp" />
- <ClCompile Include="StdAfx.cpp" />
- <ClCompile Include="symbolinfo.cpp" />
- <ClCompile Include="ValueHome.cpp" />
- <ClCompile Include="WindowsPipeline.cpp" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/debug/di/dirs.proj b/src/debug/di/dirs.proj
deleted file mode 100644
index c5a9894..0000000
--- a/src/debug/di/dirs.proj
+++ /dev/null
@@ -1,18 +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>
- </PropertyGroup>
-
- <!--The following projects will build during PHASE 1-->
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Condition="'$(FeatureDbiDebugging)'=='true'" Include="hostlocal\di.nativeproj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/di/rspriv.h b/src/debug/di/rspriv.h
index 18920ad..8f369b7 100644
--- a/src/debug/di/rspriv.h
+++ b/src/debug/di/rspriv.h
@@ -6929,11 +6929,11 @@ public:
// new-style constructor
CordbMiscFrame(DebuggerIPCE_JITFuncData * pJITFuncData);
-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
+#ifdef WIN64EXCEPTIONS
SIZE_T parentIP;
FramePointer fpParentOrSelf;
bool fIsFilterFunclet;
-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
+#endif // WIN64EXCEPTIONS
};
diff --git a/src/debug/di/rsthread.cpp b/src/debug/di/rsthread.cpp
index a4660be..02fae00 100644
--- a/src/debug/di/rsthread.cpp
+++ b/src/debug/di/rsthread.cpp
@@ -5849,11 +5849,11 @@ CordbMiscFrame::CordbMiscFrame()
// the real constructor which stores the funclet-related information in the CordbMiscFrame
CordbMiscFrame::CordbMiscFrame(DebuggerIPCE_JITFuncData * pJITFuncData)
{
-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
+#ifdef WIN64EXCEPTIONS
this->parentIP = pJITFuncData->parentNativeOffset;
this->fpParentOrSelf = pJITFuncData->fpParentOrSelf;
this->fIsFilterFunclet = (pJITFuncData->fIsFilterFrame == TRUE);
-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
+#endif // WIN64EXCEPTIONS
}
/* ------------------------------------------------------------------------- *
diff --git a/src/debug/dirs.proj b/src/debug/dirs.proj
deleted file mode 100644
index 43aa2dd..0000000
--- a/src/debug/dirs.proj
+++ /dev/null
@@ -1,23 +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>
-
- <!--The following projects will build during PHASE 1-->
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Include="ee\dirs.proj" />
- <ProjectFile Condition="'$(FeatureDbiDebugging)'=='true'" Include="di\dirs.proj" />
- <ProjectFile Include="ildbsymlib\dirs.proj" />
- <ProjectFile Include="daccess\dirs.proj" />
- <ProjectFile Include="shim\dirs.proj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/ee/DIRS.proj b/src/debug/ee/DIRS.proj
deleted file mode 100644
index 63dd0c8..0000000
--- a/src/debug/ee/DIRS.proj
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!--Import the settings-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
-
- <!--The following projects will build during PHASE 1-->
- <PropertyGroup>
- <BuildInPhase1>true</BuildInPhase1>
- <BuildInPhaseDefault>false</BuildInPhaseDefault>
- <BuildCoreBinaries>true</BuildCoreBinaries>
- <BuildSysBinaries>true</BuildSysBinaries>
- </PropertyGroup>
-
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Include="wks\wks.nativeproj" />
- <ProjectFile Include="dac\dirs.proj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/ee/DebuggerEE.vcproj b/src/debug/ee/DebuggerEE.vcproj
deleted file mode 100644
index 6df51a0..0000000
--- a/src/debug/ee/DebuggerEE.vcproj
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="DebuggerEE"
- ProjectGUID="{31EEC9FD-A233-4B36-8762-2D30A030C319}"
- Keyword="MakeFileProj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="0">
- <Tool
- Name="VCNMakeTool"
- Output="DebuggerEE.exe"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="0">
- <Tool
- Name="VCNMakeTool"
- Output="DebuggerEE.exe"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
- <File
- RelativePath="controller.cpp">
- </File>
- <File
- RelativePath="debugger.cpp">
- </File>
- <File
- RelativePath="frameinfo.cpp">
- </File>
- <File
- RelativePath="ilwalker.cpp">
- </File>
- <File
- RelativePath="lscommon.cpp">
- </File>
- <File
- RelativePath="lsdivalue.cpp">
- </File>
- <File
- RelativePath="lshash.cpp">
- </File>
- <File
- RelativePath="lsmodule.cpp">
- </File>
- <File
- RelativePath="lsprocess.cpp">
- </File>
- <File
- RelativePath="lsthread.cpp">
- </File>
- <File
- RelativePath="rcthread.cpp">
- </File>
- <File
- RelativePath="stdafx.cpp">
- </File>
- <File
- RelativePath="thread.cpp">
- </File>
- <File
- RelativePath="i386\x86walker.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc">
- <File
- RelativePath="controller.h">
- </File>
- <File
- RelativePath="debugger.h">
- </File>
- <File
- RelativePath="frameinfo.h">
- </File>
- <File
- RelativePath="stdafx.h">
- </File>
- <File
- RelativePath="walker.h">
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/debug/ee/EE.props b/src/debug/ee/EE.props
deleted file mode 100644
index 90b9f81..0000000
--- a/src/debug/ee/EE.props
+++ /dev/null
@@ -1,60 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!--*****************************************************-->
- <!--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" />
- <Import Project="$(Clrbase)\src\Debug\SetDebugTargetLocal.props" />
- <!--Leaf project Properties-->
- <PropertyGroup>
- <UserIncludes>$(UserIncludes);
- $(Clrbase)\src\Debug\EE;
- $(Clrbase)\src\vm;
- $(Clrbase)\src\vm\$(TargetCpu);
- $(Clrbase)\src\Debug\inc;
- $(Clrbase)\src\Debug\inc\$(TargetCpu);
- $(Clrbase)\src\Debug\inc\dump;
- $(VCToolsIncPath);
- $(Clrbase)\src\strongname\inc</UserIncludes>
- <ClAdditionalOptions>$(ClAdditionalOptions) -DUNICODE -D_UNICODE -DFEATURE_NO_HOST</ClAdditionalOptions>
- <PCHHeader Condition="'$(CCOVER)' == ''">stdafx.h</PCHHeader>
- <EnableCxxPCHHeaders Condition="'$(CCOVER)' == ''">true</EnableCxxPCHHeaders>
- <!--PCH: Both precompiled header and cpp are on the same ..\ path this is likely to be wrong.-->
- <PCHCompile Condition="'$(CCOVER)' == ''">$(Clrbase)\src\Debug\EE\stdafx.cpp</PCHCompile>
- </PropertyGroup>
- <!--Leaf Project Items-->
- <ItemGroup>
- <CppCompile Include="$(Clrbase)\src\Debug\EE\controller.cpp" />
- <CppCompile Include="$(Clrbase)\src\Debug\EE\Debugger.cpp" />
- <CppCompile Include="$(Clrbase)\src\Debug\EE\DebuggerModule.cpp" />
- <CppCompile Include="$(Clrbase)\src\Debug\EE\functioninfo.cpp" />
- </ItemGroup>
- <ItemGroup>
- <SourcesNodac Include="$(Clrbase)\src\Debug\EE\funceval.cpp" />
- <SourcesNodac Include="$(Clrbase)\src\Debug\EE\RCThread.cpp" />
- <SourcesNodac Include="$(Clrbase)\src\Debug\EE\Canary.cpp" />
- <SourcesNodac Include="$(Clrbase)\src\Debug\EE\shared.cpp" />
- <SourcesNodac Include="$(Clrbase)\src\Debug\EE\frameinfo.cpp" />
- </ItemGroup>
- <ItemGroup>
- <I386Sources Condition="'$(TargetArch)' == 'i386'" Include="$(Clrbase)\src\Debug\EE\i386\x86walker.cpp" />
- <I386Sources Condition="'$(TargetArch)' == 'i386'" Include="$(Clrbase)\src\Debug\EE\i386\primitives.cpp" />
- <I386Sources Condition="'$(TargetArch)' == 'i386'" Include="$(Clrbase)\src\Debug\EE\i386\DebuggerRegDisplayHelper.cpp" />
- </ItemGroup>
- <ItemGroup>
- <Amd64Sources Condition="'$(TargetArch)' == 'amd64'" Include="$(Clrbase)\src\Debug\EE\amd64\primitives.cpp" />
- <Amd64Sources Condition="'$(TargetArch)' == 'amd64'" Include="$(Clrbase)\src\Debug\EE\amd64\Amd64walker.cpp" />
- <Amd64Sources Condition="'$(TargetArch)' == 'amd64'" Include="$(Clrbase)\src\Debug\EE\amd64\DebuggerRegDisplayHelper.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ArmSources Condition="'$(TargetArch)' == 'arm'" Include="$(Clrbase)\src\Debug\EE.\arm\primitives.cpp" />
- <ArmSources Condition="'$(TargetArch)' == 'arm'" Include="$(Clrbase)\src\Debug\EE\arm\ArmWalker.cpp" />
- </ItemGroup>
- <ItemGroup>
- <Arm64Sources Condition="'$(TargetArch)' == 'arm64'" Include="$(Clrbase)\src\Debug\EE\arm64\primitives.cpp" />
- <Arm64Sources Condition="'$(TargetArch)' == 'arm64'" Include="$(Clrbase)\src\Debug\EE\arm64\Arm64Walker.cpp" />
- </ItemGroup>
-
- <!--Import the targets-->
-</Project>
diff --git a/src/debug/ee/amd64/amd64walker.cpp b/src/debug/ee/amd64/amd64walker.cpp
index 836d214..39e9784 100644
--- a/src/debug/ee/amd64/amd64walker.cpp
+++ b/src/debug/ee/amd64/amd64walker.cpp
@@ -131,10 +131,11 @@ void NativeWalker::Decode()
{
case 0xff:
{
-
BYTE modrm = *ip++;
- _ASSERT(modrm != NULL);
+ // Ignore "inc dword ptr [reg]" instructions
+ if (modrm == 0)
+ break;
BYTE mod = (modrm & 0xC0) >> 6;
BYTE reg = (modrm & 0x38) >> 3;
diff --git a/src/debug/ee/arm64/dbghelpers.S b/src/debug/ee/arm64/dbghelpers.S
new file mode 100644
index 0000000..07ed04a
--- /dev/null
+++ b/src/debug/ee/arm64/dbghelpers.S
@@ -0,0 +1,25 @@
+//Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#include "unixasmmacros.inc"
+
+NESTED_ENTRY FuncEvalHijack, _TEXT, FuncEvalHijackPersonalityRoutine
+
+// NOTE: FuncEvalHijackPersonalityRoutine is dependent on the stack layout so if
+// you change the prolog you will also need to update the personality routine.
+
+// push arg to the stack so our personality routine can find it
+// push lr to get good stacktrace in debugger
+
+PROLOG_SAVE_REG_PAIR fp, lr, #-32
+
+ str x0, [sp, #16]
+ // FuncEvalHijackWorker returns the address we should jump to.
+ bl FuncEvalHijackWorker
+
+ EPILOG_STACK_FREE 32
+ EPILOG_BRANCH_REG x0
+NESTED_END FuncEvalHijack, _TEXT
+
+//NESTED_ENTRY ExceptionHijack,,ExceptionHijackPersonalityRoutine \ No newline at end of file
diff --git a/src/debug/ee/dac/dirs.proj b/src/debug/ee/dac/dirs.proj
deleted file mode 100644
index 8b76656..0000000
--- a/src/debug/ee/dac/dirs.proj
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!--Import the settings-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
-
- <!--The following projects will build during PHASE 1-->
- <PropertyGroup>
- <BuildInPhase1>true</BuildInPhase1>
- <BuildInPhaseDefault>false</BuildInPhaseDefault>
- <BuildCoreBinaries>true</BuildCoreBinaries>
- <BuildSysBinaries>true</BuildSysBinaries>
- </PropertyGroup>
-
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Include="HostLocal\dacwks.nativeproj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/ee/debugger.cpp b/src/debug/ee/debugger.cpp
index 2aed8bd..1f2126b 100644
--- a/src/debug/ee/debugger.cpp
+++ b/src/debug/ee/debugger.cpp
@@ -1898,7 +1898,7 @@ void Debugger::SendCreateProcess(DebuggerLockHolder * pDbgLockHolder)
#if defined(FEATURE_CORECLR) && !defined(FEATURE_PAL)
-HANDLE g_hContinueStartupEvent = NULL;
+HANDLE g_hContinueStartupEvent = INVALID_HANDLE_VALUE;
CLR_ENGINE_METRICS g_CLREngineMetrics = {
sizeof(CLR_ENGINE_METRICS),
@@ -1945,7 +1945,7 @@ void NotifyDebuggerOfTelestoStartup()
// enumeration of this process will get back a valid continue event
// the instant we signal the startup notification event.
- CONSISTENCY_CHECK(NULL == g_hContinueStartupEvent);
+ CONSISTENCY_CHECK(INVALID_HANDLE_VALUE == g_hContinueStartupEvent);
g_hContinueStartupEvent = WszCreateEvent(NULL, TRUE, FALSE, NULL);
CONSISTENCY_CHECK(INVALID_HANDLE_VALUE != g_hContinueStartupEvent); // we reserve this value for error conditions in EnumerateCLRs
@@ -2173,7 +2173,14 @@ HRESULT Debugger::Startup(void)
// Signal the debugger (via dbgshim) and wait until it is ready for us to
// continue. This needs to be outside the lock and after the transport is
// initialized.
- PAL_NotifyRuntimeStarted();
+ if (PAL_NotifyRuntimeStarted())
+ {
+ // The runtime was successfully launched and attached so mark it now
+ // so no notifications are missed especially the initial module load
+ // which would cause debuggers problems with reliable setting breakpoints
+ // in startup code or Main.
+ MarkDebuggerAttachedInternal();
+ }
#endif // FEATURE_PAL
// We don't bother changing this process's permission.
diff --git a/src/debug/ee/debugger.inl b/src/debug/ee/debugger.inl
index dbd5479..5737286 100644
--- a/src/debug/ee/debugger.inl
+++ b/src/debug/ee/debugger.inl
@@ -235,14 +235,14 @@ inline void FuncEvalFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
// Update all registers in the reg display from the CONTEXT we stored when the thread was hijacked for this func
// eval. We have to update all registers, not just the callee saved registers, because we can hijack a thread at any
// point for a func eval, not just at a call site.
- pRD->pEdi = &(pDE->m_context.Edi);
- pRD->pEsi = &(pDE->m_context.Esi);
- pRD->pEbx = &(pDE->m_context.Ebx);
- pRD->pEdx = &(pDE->m_context.Edx);
- pRD->pEcx = &(pDE->m_context.Ecx);
- pRD->pEax = &(pDE->m_context.Eax);
- pRD->pEbp = &(pDE->m_context.Ebp);
- pRD->Esp = (DWORD)GetSP(&pDE->m_context);
+ pRD->SetEdiLocation(&(pDE->m_context.Edi));
+ pRD->SetEsiLocation(&(pDE->m_context.Esi));
+ pRD->SetEbxLocation(&(pDE->m_context.Ebx));
+ pRD->SetEdxLocation(&(pDE->m_context.Edx));
+ pRD->SetEcxLocation(&(pDE->m_context.Ecx));
+ pRD->SetEaxLocation(&(pDE->m_context.Eax));
+ pRD->SetEbpLocation(&(pDE->m_context.Ebp));
+ pRD->SP = (DWORD)GetSP(&pDE->m_context);
pRD->PCTAddr = GetReturnAddressPtr();
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
diff --git a/src/debug/ee/i386/x86walker.cpp b/src/debug/ee/i386/x86walker.cpp
index dd03468..8b62797 100644
--- a/src/debug/ee/i386/x86walker.cpp
+++ b/src/debug/ee/i386/x86walker.cpp
@@ -292,28 +292,28 @@ DWORD NativeWalker::GetRegisterValue(int registerNumber)
switch (registerNumber)
{
case 0:
- return *m_registers->pEax;
+ return *m_registers->GetEaxLocation();
break;
case 1:
- return *m_registers->pEcx;
+ return *m_registers->GetEcxLocation();
break;
case 2:
- return *m_registers->pEdx;
+ return *m_registers->GetEdxLocation();
break;
case 3:
- return *m_registers->pEbx;
+ return *m_registers->GetEbxLocation();
break;
case 4:
- return m_registers->Esp;
+ return m_registers->SP;
break;
case 5:
- return *m_registers->pEbp;
+ return *m_registers->GetEbpLocation();
break;
case 6:
- return *m_registers->pEsi;
+ return *m_registers->GetEsiLocation();
break;
case 7:
- return *m_registers->pEdi;
+ return *m_registers->GetEdiLocation();
break;
default:
_ASSERTE(!"Invalid register number!");
diff --git a/src/debug/ee/wks/CMakeLists.txt b/src/debug/ee/wks/CMakeLists.txt
index 2b1aff5..1088355 100644
--- a/src/debug/ee/wks/CMakeLists.txt
+++ b/src/debug/ee/wks/CMakeLists.txt
@@ -55,7 +55,7 @@ else ()
add_compile_options(-fPIC)
-if(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM OR CLR_CMAKE_PLATFORM_ARCH_I386)
+if(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM OR CLR_CMAKE_PLATFORM_ARCH_ARM64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ../${ARCH_SOURCES_DIR}/dbghelpers.S)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS})
diff --git a/src/debug/ee/wks/wks.nativeproj b/src/debug/ee/wks/wks.nativeproj
deleted file mode 100644
index 304c591..0000000
--- a/src/debug/ee/wks/wks.nativeproj
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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-->
- <!--Leaf project Properties-->
- <PropertyGroup Label="Globals">
- <SccProjectName>SAK</SccProjectName>
- <SccAuxPath>SAK</SccAuxPath>
- <SccLocalPath>SAK</SccLocalPath>
- <SccProvider>SAK</SccProvider>
- </PropertyGroup>
- <PropertyGroup>
- <BuildCoreBinaries>true</BuildCoreBinaries>
- <BuildSysBinaries>true</BuildSysBinaries>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <OutputName>cordbee_wks</OutputName>
- <TargetType>LIBRARY</TargetType>
- <UserAssembleAmd64IncludePath>
- $(UserAssembleAmd64IncludePath);
- ..\..\..\vm\AMD64;
- </UserAssembleAmd64IncludePath>
- </PropertyGroup>
- <!--Leaf Project Items-->
- <Import Project="..\EE.props" />
- <ItemGroup>
- <CppCompile Include="@(SourcesNodac)" />
- <CppCompile Include="@(I386Sources)" />
- <CppCompile Include="@(Amd64Sources)" />
- <CppCompile Include="@(ArmSources)" />
- <CppCompile Include="@(Arm64Sources)" />
- <PreprocessAssembleArm Condition="'$(BuildArchitecture)' == 'arm'" Include="..\arm\dbghelpers.asm" />
- <PreprocessAssembleArm Condition="'$(BuildArchitecture)' == 'arm64'" Include="..\arm64\dbghelpers.asm" />
- <AssembleArm Condition="'$(BuildArchitecture)' == 'arm'" Include="$(IntermediateOutputDirectory)\dbghelpers.i" />
- <AssembleArm64 Condition="'$(BuildArchitecture)' == 'arm64'" Include="$(IntermediateOutputDirectory)\dbghelpers.i" />
- <Assemble386 Condition="'$(BuildArchitecture)' == 'i386'" Include="..\i386\dbghelpers.asm" />
- <AssembleAmd64 Condition="'$(BuildArchitecture)' == 'amd64'" Include="..\amd64\dbghelpers.asm" />
- </ItemGroup>
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" />
-</Project>
diff --git a/src/debug/ildbsymlib/dirs.proj b/src/debug/ildbsymlib/dirs.proj
deleted file mode 100644
index b171f7b..0000000
--- a/src/debug/ildbsymlib/dirs.proj
+++ /dev/null
@@ -1,19 +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>
-
- <!--The following projects will build during PHASE 1-->
- <ItemGroup Condition="'$(BuildExePhase)' == '1'">
- <ProjectFile Condition="'$(FeatureDbiDebugging)'=='true'" Include="HostLocal\ildbsymlib.nativeproj" />
- </ItemGroup>
-
- <!--Import the targets-->
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>
diff --git a/src/debug/ildbsymlib/ildbsymlib.props b/src/debug/ildbsymlib/ildbsymlib.props
deleted file mode 100644
index 2a64f2e..0000000
--- a/src/debug/ildbsymlib/ildbsymlib.props
+++ /dev/null
@@ -1,29 +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>
- <TargetType>LIBRARY</TargetType>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <LinkSubsystem>windows</LinkSubsystem>
- <UseMsvcrt />
- <ExceptionHandling>$(Sehonly)</ExceptionHandling>
- <UserIncludes>$(UserIncludes);
- ..\;
- ..\..\..\inc;
- </UserIncludes>
- <CDefines>$(CDefines);UNICODE;_UNICODE</CDefines>
- </PropertyGroup>
- <!--Leaf Project Items-->
- <ItemGroup>
- <CppCompile Include="..\symread.cpp" />
- <CppCompile Include="..\symbinder.cpp" />
- <CppCompile Include="..\ildbsymbols.cpp" />
- <CppCompile Include="..\symwrite.cpp" />
- </ItemGroup>
-
-</Project>
diff --git a/src/debug/ildbsymlib/ildbsymlib.vcproj b/src/debug/ildbsymlib/ildbsymlib.vcproj
deleted file mode 100644
index 0720212..0000000
--- a/src/debug/ildbsymlib/ildbsymlib.vcproj
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="ildbsymlib"
- ProjectGUID="{08C26436-55DD-4332-804C-C963A859E4DE}"
- RootNamespace="ildbsymlib"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="4"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".;..\..\inc"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;-DUNICODE -D_UNICODE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="4"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".;..\..\inc"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;-DUNICODE -D_UNICODE"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </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=".\classfactory.h"
- >
- </File>
- <File
- RelativePath="..\..\inc\IldbSymLib.h"
- >
- </File>
- <File
- RelativePath=".\pch.h"
- >
- </File>
- <File
- RelativePath=".\pdbdata.h"
- >
- </File>
- <File
- RelativePath=".\symbinder.h"
- >
- </File>
- <File
- RelativePath=".\SymRead.h"
- >
- </File>
- <File
- RelativePath=".\SymWrite.h"
- >
- </File>
- <File
- RelativePath=".\umisc.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}"
- >
- </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=".\ildbsymbols.cpp"
- >
- </File>
- <File
- RelativePath=".\symbinder.cpp"
- >
- </File>
- <File
- RelativePath=".\SymRead.cpp"
- >
- </File>
- <File
- RelativePath=".\symwrite.cpp"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/debug/inc/dbgipcevents.h b/src/debug/inc/dbgipcevents.h
index 6ace36e..1b4dec7 100644
--- a/src/debug/inc/dbgipcevents.h
+++ b/src/debug/inc/dbgipcevents.h
@@ -1355,11 +1355,11 @@ struct MSLAYOUT DebuggerIPCE_JITFuncData
LSPTR_DJI nativeCodeJITInfoToken;
VMPTR_MethodDesc vmNativeCodeMethodDescToken;
-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
+#ifdef WIN64EXCEPTIONS
BOOL fIsFilterFrame;
SIZE_T parentNativeOffset;
FramePointer fpParentOrSelf;
-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
+#endif // WIN64EXCEPTIONS
// indicates if the MethodDesc is a generic function or a method inside a generic class (or
// both!).
diff --git a/src/debug/inc/dbgtargetcontext.h b/src/debug/inc/dbgtargetcontext.h
index 22b1c84..c2b45ee 100644
--- a/src/debug/inc/dbgtargetcontext.h
+++ b/src/debug/inc/dbgtargetcontext.h
@@ -371,6 +371,14 @@ typedef DECLSPEC_ALIGN(8) struct {
#define DT_CONTEXT_FULL (DT_CONTEXT_CONTROL | DT_CONTEXT_INTEGER | DT_CONTEXT_FLOATING_POINT)
#define DT_CONTEXT_ALL (DT_CONTEXT_CONTROL | DT_CONTEXT_INTEGER | DT_CONTEXT_FLOATING_POINT | DT_CONTEXT_DEBUG_REGISTERS)
+#define DT_ARM64_MAX_BREAKPOINTS 8
+#define DT_ARM64_MAX_WATCHPOINTS 2
+
+typedef struct {
+ ULONGLONG Low;
+ LONGLONG High;
+} DT_NEON128;
+
typedef DECLSPEC_ALIGN(16) struct {
//
// Control flags.
@@ -426,7 +434,7 @@ typedef DECLSPEC_ALIGN(16) struct {
// Floating Point/NEON Registers
//
- /* +0x110 */ NEON128 V[32];
+ /* +0x110 */ DT_NEON128 V[32];
/* +0x310 */ DWORD Fpcr;
/* +0x314 */ DWORD Fpsr;
@@ -434,10 +442,10 @@ typedef DECLSPEC_ALIGN(16) struct {
// Debug registers
//
- /* +0x318 */ DWORD Bcr[ARM64_MAX_BREAKPOINTS];
- /* +0x338 */ DWORD64 Bvr[ARM64_MAX_BREAKPOINTS];
- /* +0x378 */ DWORD Wcr[ARM64_MAX_WATCHPOINTS];
- /* +0x380 */ DWORD64 Wvr[ARM64_MAX_WATCHPOINTS];
+ /* +0x318 */ DWORD Bcr[DT_ARM64_MAX_BREAKPOINTS];
+ /* +0x338 */ DWORD64 Bvr[DT_ARM64_MAX_BREAKPOINTS];
+ /* +0x378 */ DWORD Wcr[DT_ARM64_MAX_WATCHPOINTS];
+ /* +0x380 */ DWORD64 Wvr[DT_ARM64_MAX_WATCHPOINTS];
/* +0x390 */
} DT_CONTEXT;
diff --git a/src/debug/shared/i386/primitives.cpp b/src/debug/shared/i386/primitives.cpp
index e47f3e7..ab22a5d 100644
--- a/src/debug/shared/i386/primitives.cpp
+++ b/src/debug/shared/i386/primitives.cpp
@@ -88,12 +88,12 @@ void SetDebuggerREGDISPLAYFromREGDISPLAY(DebuggerREGDISPLAY* pDRD, REGDISPLAY* p
// Frame pointer
LPVOID FPAddress = GetRegdisplayFPAddress(pRD);
pDRD->FP = (FPAddress == NULL ? 0 : *((SIZE_T *)FPAddress));
- pDRD->Edi = (pRD->pEdi == NULL ? 0 : *(pRD->pEdi));
- pDRD->Esi = (pRD->pEsi == NULL ? 0 : *(pRD->pEsi));
- pDRD->Ebx = (pRD->pEbx == NULL ? 0 : *(pRD->pEbx));
- pDRD->Edx = (pRD->pEdx == NULL ? 0 : *(pRD->pEdx));
- pDRD->Ecx = (pRD->pEcx == NULL ? 0 : *(pRD->pEcx));
- pDRD->Eax = (pRD->pEax == NULL ? 0 : *(pRD->pEax));
+ pDRD->Edi = (pRD->GetEdiLocation() == NULL ? 0 : *pRD->GetEdiLocation());
+ pDRD->Esi = (pRD->GetEsiLocation() == NULL ? 0 : *pRD->GetEsiLocation());
+ pDRD->Ebx = (pRD->GetEbxLocation() == NULL ? 0 : *pRD->GetEbxLocation());
+ pDRD->Edx = (pRD->GetEdxLocation() == NULL ? 0 : *pRD->GetEdxLocation());
+ pDRD->Ecx = (pRD->GetEcxLocation() == NULL ? 0 : *pRD->GetEcxLocation());
+ pDRD->Eax = (pRD->GetEsiLocation() == NULL ? 0 : *pRD->GetEaxLocation());
#if defined(USE_REMOTE_REGISTER_ADDRESS)
pDRD->pFP = PushedRegAddr(pRD, FPAddress);
@@ -113,7 +113,7 @@ void SetDebuggerREGDISPLAYFromREGDISPLAY(DebuggerREGDISPLAY* pDRD, REGDISPLAY* p
pDRD->pEax = NULL;
#endif // !USE_REMOTE_REGISTER_ADDRESS
- pDRD->SP = pRD->Esp;
+ pDRD->SP = pRD->SP;
pDRD->PC = pRD->ControlPC;
// Please leave EBP, ESP, EIP at the front so I don't have to scroll
diff --git a/src/debug/shim/debugshim.props b/src/debug/shim/debugshim.props
deleted file mode 100644
index 8d3bb3f..0000000
--- a/src/debug/shim/debugshim.props
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="dogfood">
- <PropertyGroup>
- <TargetType>LIBRARY</TargetType>
- <OutputPath>$(ClrLibDest)</OutputPath>
- <LinkSubsystem>windows</LinkSubsystem>
- <UseMsvcrt />
- <ExceptionHandling>$(Sehonly)</ExceptionHandling>
- <UserIncludes>$(UserIncludes);
- ..\;
- ..\..\inc;
- ..\..\..\inc;
- </UserIncludes>
- <CDefines>$(CDefines);UNICODE;_UNICODE</CDefines>
- <CDefines Condition="$(HostMachineOS)=='windows'">$(CDefines);HOST_IS_WINDOWS_OS</CDefines>
- </PropertyGroup>
- <ItemGroup>
- <CppCompile Include="..\debugshim.cpp" />
- </ItemGroup>
-</Project>
diff --git a/src/debug/shim/dirs.proj b/src/debug/shim/dirs.proj
deleted file mode 100644
index 45798d6..0000000
--- a/src/debug/shim/dirs.proj
+++ /dev/null
@@ -1,16 +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 Include="HostLocal\debugshim.nativeproj" />
- </ItemGroup>
-
- <Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
-</Project>