diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2017-02-10 20:35:12 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2017-02-10 20:35:12 +0900 |
commit | 4b11dc566a5bbfa1378d6266525c281b028abcc8 (patch) | |
tree | b48831a898906734f8884d08b6e18f1144ee2b82 /src/debug | |
parent | db20f3f1bb8595633a7e16c8900fd401a453a6b5 (diff) | |
download | coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.tar.gz coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.tar.bz2 coreclr-4b11dc566a5bbfa1378d6266525c281b028abcc8.zip |
Imported Upstream version 1.0.0.9910upstream/1.0.0.9910
Diffstat (limited to 'src/debug')
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 43da554f47..0000000000 --- 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 d3a2a63bbc..29c9626db8 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 d8bae7746f..33dfa10b54 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 f2a1cc652a..4d4031d724 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 795d462778..0000000000 --- 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 d66af05769..0f38aa582a 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 520b2c6010..0000000000 --- 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 f4c41b903a..0000000000 --- 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 1d7336dab0..0000000000 --- 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 33cbec162c..0000000000 --- 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 08533b7240..0000000000 --- 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 c5a98947e5..0000000000 --- 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 18920add5d..8f369b7414 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 a4660be570..02fae00b0f 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 43aa2dd262..0000000000 --- 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 63dd0c8afb..0000000000 --- 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 6df51a0fd6..0000000000 --- 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 90b9f815fd..0000000000 --- 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 836d21486e..39e97841b4 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 0000000000..07ed04acd5 --- /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 8b766561f5..0000000000 --- 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 2aed8bd820..1f2126b9f0 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 dbd5479a69..57372868c0 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 dd0346889f..8b62797484 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 2b1aff57a1..1088355f12 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 304c591485..0000000000 --- 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 b171f7bca5..0000000000 --- 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 2a64f2eb7e..0000000000 --- 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 07202121d9..0000000000 --- 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 6ace36e011..1b4dec7c16 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 22b1c84096..c2b45ee059 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 e47f3e731e..ab22a5d4b1 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 8d3bb3fe65..0000000000 --- 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 45798d6237..0000000000 --- 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> |