From: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sun, 25 Jul 2021 20:18:45 +0000 (-0700) Subject: [main] Update dependencies from dotnet/runtime (#2435) X-Git-Tag: submit/tizen/20220302.040122~21^2^2~200 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=01108cd8fbd1f1c12215c6abfd410d2ad37f3b57;p=platform%2Fcore%2Fdotnet%2Fdiagnostics.git [main] Update dependencies from dotnet/runtime (#2435) * Fix asssuption in SOS what the IXClrDataModule::GetFlags returns. * Update to lldb-included Alpine 3.13 container * Try node image for agent comms * Use container with correct metadata to node path * Remove libintl dependencies * Update dependencies from https://github.com/dotnet/runtime build 20210724.7 Microsoft.NETCore.App.Runtime.win-x64 , VS.Redist.Common.NetCore.SharedFramework.x64.6.0 From Version 6.0.0-preview.7.21361.10 -> To Version 6.0.0-rc.1.21374.7 * Disable testing against dumps on Alpine for now (until the 6.0 createdump change is in) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Mike McLaughlin Co-authored-by: Juan Hoyos Co-authored-by: Juan Sebastian Hoyos Ayala --- diff --git a/diagnostics.yml b/diagnostics.yml index 91f484de3..5ff5383ad 100644 --- a/diagnostics.yml +++ b/diagnostics.yml @@ -140,9 +140,9 @@ stages: - template: /eng/build.yml parameters: - name: Alpine3_6 + name: Alpine3_13 osGroup: Linux - dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247 + dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.13-WithNode-20210720123506-ddfc481 artifactsTargetPath: bin/Linux-musl.x64.Release strategy: matrix: @@ -217,9 +217,9 @@ stages: - template: /eng/build.yml parameters: - name: Alpine3_6_cross64 + name: Alpine_cross64 osGroup: Linux - dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20200127195039 + dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-20210719121212-b2c2436 crossrootfsDir: '/crossrootfs/arm64' artifactsTargetPath: bin/Linux-musl.arm64.Release buildAndSkipTest: true @@ -339,12 +339,12 @@ stages: dependsOn: - Windows - CentOS_7 - - Alpine3_6 + - Alpine3_13 - MacOS - MacOS_cross - Linux_cross - Linux_cross64 - - Alpine3_6_cross64 + - Alpine_cross64 condition: succeeded() pool: name: NetCoreInternal-Pool diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d5c2b9bad..f394f43a1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -40,13 +40,13 @@ https://github.com/dotnet/aspnetcore 837b17847c427be12d69623cf32223c10a4ddba5 - + https://github.com/dotnet/runtime - 98b7ed1a3b0543a31b5a0f9069cf44cb70c9230c + d019e70d2b7c2f7cd1137fac084dbcdc3d2e05f5 - + https://github.com/dotnet/runtime - 98b7ed1a3b0543a31b5a0f9069cf44cb70c9230c + d019e70d2b7c2f7cd1137fac084dbcdc3d2e05f5 diff --git a/eng/Versions.props b/eng/Versions.props index 06e248725..f2d5b92b0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -17,8 +17,8 @@ 5.0.6 $(MicrosoftNETCoreApp50Version) - 6.0.0-preview.7.21361.10 - 6.0.0-preview.7.21361.10 + 6.0.0-rc.1.21374.7 + 6.0.0-rc.1.21374.7 6.0.0-preview.7.21363.17 6.0.0-preview.7.21363.17 diff --git a/src/SOS/SOS.UnitTests/SOS.cs b/src/SOS/SOS.UnitTests/SOS.cs index 133eadc51..e1f6ec5fd 100644 --- a/src/SOS/SOS.UnitTests/SOS.cs +++ b/src/SOS/SOS.UnitTests/SOS.cs @@ -41,6 +41,8 @@ public class SOS { information.OutputHelper = Output; + // TODO: enable when the Alpine images (we are currently using 3.13) have the py3-lldb package installed. + // TODO: enable either when bpmd is fixed on Alpine or the bpmd tests are ifdef'ed out of the scripts for Alpine if (testLive && !SOSRunner.IsAlpine()) { // Live @@ -50,7 +52,8 @@ public class SOS } } - if (testDump) + // TODO: enable for 6.0 when PR https://github.com/dotnet/runtime/pull/56272 is merged/released + if (testDump && !SOSRunner.IsAlpine()) { // Create and test dumps on OSX only if the runtime is 6.0 or greater // TODO: reenable for 5.0 when the MacOS createdump fixes make it into a service release (https://github.com/dotnet/diagnostics/issues/1749) @@ -59,23 +62,16 @@ public class SOS // Generate a crash dump. if (information.TestConfiguration.DebuggeeDumpOutputRootDir() != null) { - if (information.DumpGenerator == SOSRunner.DumpGenerator.NativeDebugger && SOSRunner.IsAlpine()) - { - throw new SkipTestException("lldb tests not supported on Alpine"); - } await SOSRunner.CreateDump(information); } // Test against a crash dump. if (information.TestConfiguration.DebuggeeDumpInputRootDir() != null) { - if (!SOSRunner.IsAlpine()) + // With cdb (Windows) or lldb (Linux) + using (SOSRunner runner = await SOSRunner.StartDebugger(information, SOSRunner.DebuggerAction.LoadDump)) { - // With cdb (Windows) or lldb (Linux) - using (SOSRunner runner = await SOSRunner.StartDebugger(information, SOSRunner.DebuggerAction.LoadDump)) - { - await runner.RunScript(scriptName); - } + await runner.RunScript(scriptName); } // Using the dotnet-dump analyze tool if the path exists in the config file. diff --git a/src/SOS/SOS.UnitTests/Scripts/DualRuntimes.script b/src/SOS/SOS.UnitTests/Scripts/DualRuntimes.script index 61c7782d4..b1be33ff5 100644 --- a/src/SOS/SOS.UnitTests/Scripts/DualRuntimes.script +++ b/src/SOS/SOS.UnitTests/Scripts/DualRuntimes.script @@ -30,17 +30,12 @@ SOSCOMMAND:ClrStack -a VERIFY:.*OS Thread Id:\s+0x\s+.* VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+ -# Issue: https://github.com/dotnet/diagnostics/issues/504 -!IFDEF:ALPINE - # Verify that ClrStack with the ICorDebug options works SOSCOMMAND:ClrStack -i VERIFY:.*\s+Dumping managed stack and managed variables using ICorDebug.\s+ VERIFY:.*\s+Child\s+SP\s+IP\s+Call Site\s+ VERIFY:.*\s+Stack walk complete.\s+ -ENDIF:ALPINE - # Verify that Threads (clrthreads) works IFDEF:DOTNETDUMP SOSCOMMAND:clrthreads diff --git a/src/SOS/SOS.UnitTests/Scripts/OtherCommands.script b/src/SOS/SOS.UnitTests/Scripts/OtherCommands.script index ace5abf65..3bade4425 100644 --- a/src/SOS/SOS.UnitTests/Scripts/OtherCommands.script +++ b/src/SOS/SOS.UnitTests/Scripts/OtherCommands.script @@ -71,8 +71,6 @@ VERIFY:\s*\s+0x\s+\(\)\s+ EXTCOMMAND:registers VERIFY:\s*([r|e]ip|pc) = 0x\s+ -# Issue: https://github.com/dotnet/diagnostics/issues/503 -!IFDEF:ALPINE SOSCOMMAND:DumpHeap VERIFY:\s+Address\s+MT\s+Size\s+ VERIFY:\s+\s+\s+.* @@ -80,7 +78,6 @@ VERIFY:\s*Statistics:\s+ VERIFY:\s+MT\s+Count\s+TotalSize\s+Class Name\s+ VERIFY:\s*\s+\s+\s+.* VERIFY:\s*Total\s+\s+objects\s+ -ENDIF:ALPINE SOSCOMMAND:DumpDomain VERIFY:\s*System Domain:\s+\s+ diff --git a/src/SOS/SOS.UnitTests/Scripts/StackAndOtherTests.script b/src/SOS/SOS.UnitTests/Scripts/StackAndOtherTests.script index 0953d097f..748409dad 100644 --- a/src/SOS/SOS.UnitTests/Scripts/StackAndOtherTests.script +++ b/src/SOS/SOS.UnitTests/Scripts/StackAndOtherTests.script @@ -85,12 +85,9 @@ ENDIF:DESKTOP SOSCOMMAND:SOSStatus -# Issue: https://github.com/dotnet/diagnostics/issues/1567 -!IFDEF:ALPINE # Test eeversion command SOSCOMMAND:EEVersion VERIFY:\s+....* -ENDIF:ALPINE # Verify that ClrStack with managed/native mixed works SOSCOMMAND:ClrStack -f @@ -167,14 +164,6 @@ VERIFY:.*\s+\s+\s+\[DEFAULT\] I4 SymbolTestApp\.Program\.Foo1\(. VERIFY:.*\s+\s+\s+\[DEFAULT\] Void SymbolTestApp\.Program\.Main\(.*\)\s+\(.*\)\s+ VERIFY:.*\s+Stack walk complete.\s+ -ENDIF:NETCORE_OR_DOTNETDUMP - -# Issue: https://github.com/dotnet/diagnostics/issues/504 -!IFDEF:ALPINE - -# There seems no way to get -i to work on desktop under cdb. It does work under dotnet-dump because of the module mapping. -IFDEF:NETCORE_OR_DOTNETDUMP - # Verify that ClrStack with the ICorDebug options and all option (locals/params) works SOSCOMMAND:ClrStack -i -a VERIFY:.*\s+Dumping managed stack and managed variables using ICorDebug.\s+ @@ -192,7 +181,6 @@ VERIFY:.*\s+\s+\s+\[DEFAULT\] I4 SymbolTestApp\.Program\.Foo1\(. VERIFY:.*\s+\s+\s+\[DEFAULT\] Void SymbolTestApp\.Program\.Main\(.*\)\s+\(.*\)\s+ VERIFY:.*\s+Stack walk complete.\s+ - # Verify DumpStackObjects works SOSCOMMAND:DumpStackObjects VERIFY:.*OS Thread Id:\s+0x\s+.* @@ -208,7 +196,6 @@ VERIFY:.*\s+\s+\s+System\.String.* VERIFY:.*\s+\s+\s+System\.String\[\].* ENDIF:NETCORE_OR_DOTNETDUMP -ENDIF:ALPINE !IFDEF:DOTNETDUMP !IFDEF:ARM diff --git a/src/SOS/SOS.UnitTests/Scripts/WebApp.script b/src/SOS/SOS.UnitTests/Scripts/WebApp.script index ee15aa11f..ce9a94cb2 100644 --- a/src/SOS/SOS.UnitTests/Scripts/WebApp.script +++ b/src/SOS/SOS.UnitTests/Scripts/WebApp.script @@ -90,17 +90,12 @@ IFDEF:X86 VERIFY:\s+eax=\s+ebx=\s+ecx=\s+ ENDIF:X86 -# Issue: https://github.com/dotnet/diagnostics/issues/504 -!IFDEF:ALPINE - # Verify that ClrStack with the ICorDebug options works SOSCOMMAND:ClrStack -i VERIFY:.*\s+Dumping managed stack and managed variables using ICorDebug.\s+ VERIFY:.*\s+Child\s+SP\s+IP\s+Call Site\s+ VERIFY:.*\s+Stack walk complete.\s+ -ENDIF:ALPINE - # Verify that Threads (clrthreads) works IFDEF:DOTNETDUMP SOSCOMMAND:clrthreads diff --git a/src/SOS/Strike/symbols.cpp b/src/SOS/Strike/symbols.cpp index 6a5ca27a9..5076eaf3b 100644 --- a/src/SOS/Strike/symbols.cpp +++ b/src/SOS/Strike/symbols.cpp @@ -387,7 +387,7 @@ HRESULT SymbolReader::LoadSymbols(___in IMetaDataImport* pMD, ___in ICorDebugMod ULONG64 peAddress = 0; IfFailRet(pModule->GetBaseAddress(&peAddress)); - IXCLRDataModule* pClrModule; + ToRelease pClrModule; IfFailRet(GetModuleFromAddress(peAddress, &pClrModule)); return LoadSymbols(pMD, pClrModule); diff --git a/src/SOS/Strike/util.cpp b/src/SOS/Strike/util.cpp index 6123b3b02..c81837dae 100644 --- a/src/SOS/Strike/util.cpp +++ b/src/SOS/Strike/util.cpp @@ -2502,7 +2502,7 @@ HRESULT GetModuleFromAddress(___in CLRDATA_ADDRESS peAddress, ___out IXCLRDataMo if ((hr = module->GetFlags(&flags)) != S_OK) { continue; } - if (flags != CLRDATA_MODULE_DEFAULT) { + if ((flags & (CLRDATA_MODULE_IS_DYNAMIC | CLRDATA_MODULE_IS_MEMORY_STREAM)) != 0) { continue; } DacpGetModuleData moduleData; diff --git a/src/inc/xclrdata.idl b/src/inc/xclrdata.idl index fb3f19ade..d20eddbb7 100644 --- a/src/inc/xclrdata.idl +++ b/src/inc/xclrdata.idl @@ -135,7 +135,7 @@ typedef enum typedef enum { CLRDATA_FIELD_DEFAULT = 0x00000000, - + // Identify particular kinds of types. These flags // are shared between type, field and value. CLRDATA_FIELD_IS_PRIMITIVE = CLRDATA_TYPE_IS_PRIMITIVE, @@ -374,10 +374,10 @@ interface IXCLRLibrarySupport : IUnknown }; interface IXCLRDisassemblySupport; -typedef SIZE_T (__stdcall *CDSTranslateAddrCB)(IXCLRDisassemblySupport *, CLRDATA_ADDRESS, wchar_t *, SIZE_T, DWORDLONG *); -typedef SIZE_T (__stdcall *CDSTranslateFixupCB)(IXCLRDisassemblySupport *, CLRDATA_ADDRESS, SIZE_T, wchar_t *, SIZE_T, DWORDLONG *); -typedef SIZE_T (__stdcall *CDSTranslateConstCB)(IXCLRDisassemblySupport *, DWORD, wchar_t *, SIZE_T); -typedef SIZE_T (__stdcall *CDSTranslateRegrelCB)(IXCLRDisassemblySupport *, unsigned rega, CLRDATA_ADDRESS, wchar_t *, SIZE_T, DWORD *); +typedef SIZE_T (__stdcall *CDSTranslateAddrCB)(IXCLRDisassemblySupport *, CLRDATA_ADDRESS, WCHAR *, SIZE_T, DWORDLONG *); +typedef SIZE_T (__stdcall *CDSTranslateFixupCB)(IXCLRDisassemblySupport *, CLRDATA_ADDRESS, SIZE_T, WCHAR *, SIZE_T, DWORDLONG *); +typedef SIZE_T (__stdcall *CDSTranslateConstCB)(IXCLRDisassemblySupport *, DWORD, WCHAR *, SIZE_T); +typedef SIZE_T (__stdcall *CDSTranslateRegrelCB)(IXCLRDisassemblySupport *, unsigned rega, CLRDATA_ADDRESS, WCHAR *, SIZE_T, DWORD *); [ object, @@ -392,7 +392,7 @@ interface IXCLRDisassemblySupport : IUnknown SIZE_T CbDisassemble(CLRDATA_ADDRESS, const void *, SIZE_T); SIZE_T Cinstruction(); BOOL FSelectInstruction(SIZE_T); - SIZE_T CchFormatInstr(wchar_t *, SIZE_T); + SIZE_T CchFormatInstr(WCHAR *, SIZE_T); void *PvClient(); HRESULT SetTranslateFixupCallback([in]CDSTranslateFixupCB cb); HRESULT SetTranslateConstCallback([in]CDSTranslateConstCB cb); @@ -407,7 +407,7 @@ interface IXCLRDisassemblySupport : IUnknown [ object, local, - uuid(A3C1704A-4559-4a67-8D28-E8F4FE3B3F62) + uuid(A3C1704A-4559-4a67-8D28-E8F4FE3B3F62) ] interface IXCLRDataDisplay : IUnknown { @@ -454,9 +454,9 @@ interface IXCLRDataDisplay : IUnknown const WCHAR * const annotation ); //produces HRESULT WriteElementAddress(const char * const element, SIZE_T base, SIZE_T size); - HRESULT WriteElementAddressNamed(const char * const element, const char * const name, + HRESULT WriteElementAddressNamed(const char * const element, const char * const name, SIZE_T base, SIZE_T size); - HRESULT WriteElementAddressNamedW(const char * const element, const WCHAR * const name, + HRESULT WriteElementAddressNamedW(const char * const element, const WCHAR * const name, SIZE_T base, SIZE_T size); HRESULT WriteElementString(const char * const element, const char * const data); HRESULT WriteElementStringW(const char * const element, const WCHAR * const data); @@ -615,19 +615,19 @@ interface IXCLRDataProcess : IUnknown * the same target state. */ HRESULT IsSameObject([in] IXCLRDataProcess* process); - + /* * Get the managed object representing the process. */ HRESULT GetManagedObject([out] IXCLRDataValue** value); - + /* * Mark the process so that it attempts to reach the * desired execution state the next time it executes. */ HRESULT GetDesiredExecutionState([out] ULONG32* state); HRESULT SetDesiredExecutionState([in] ULONG32 state); - + /* * Return an indicator of the type of data referred * to by the given address. @@ -640,7 +640,7 @@ interface IXCLRDataProcess : IUnknown * the address refers to non-managed-method information. * Method names can be retrieved by using GetMethodInstanceByAddress * and GetName on the method instance. - * + * * Returns S_FALSE if the buffer is not large enough for the name, * and sets nameLen to be the buffer length needed. */ @@ -686,7 +686,7 @@ interface IXCLRDataProcess : IUnknown */ HRESULT GetModuleByAddress([in] CLRDATA_ADDRESS address, [out] IXCLRDataModule** mod); - + /* * Look up method instances by native code address. */ @@ -748,7 +748,7 @@ interface IXCLRDataProcess : IUnknown ULONG32 flags); HRESULT SetAllCodeNotifications(IXCLRDataModule* mod, ULONG32 flags); - + /* * Request notification when a type is * loaded or unloaded. @@ -770,7 +770,7 @@ interface IXCLRDataProcess : IUnknown [in, size_is(numTokens)] mdTypeDef tokens[], [in, size_is(numTokens)] ULONG32 flags[], [in] ULONG32 singleFlags); - + /* * Request notification when code is generated or * discarded for a method. @@ -799,7 +799,7 @@ interface IXCLRDataProcess : IUnknown */ HRESULT GetOtherNotificationFlags([out] ULONG32* flags); HRESULT SetOtherNotificationFlags([in] ULONG32 flags); - + /* * Look up method definitions by IL code address. */ @@ -842,7 +842,7 @@ interface IXCLRDataProcess : IUnknown /* * Types used in IXCLRDataProcess2 and IXCLRDataExceptionNotification3 */ - + typedef enum { GC_MARK_END = 1, @@ -871,7 +871,7 @@ interface IXCLRDataProcess2 : IXCLRDataProcess { /* * Request notification when a GC is triggered. - * GcEvtArgs specifies exactly which GC events + * GcEvtArgs specifies exactly which GC events * are of interest. */ /* @@ -909,7 +909,7 @@ interface IXCLRDataAppDomain : IUnknown [out] ULONG32 *nameLen, [out, size_is(bufLen)] WCHAR name[]); - /* + /* * Get a unique, stable identifier for this object. */ HRESULT GetUniqueID([out] ULONG64* id); @@ -918,13 +918,13 @@ interface IXCLRDataAppDomain : IUnknown * Get state flags, defined in CLRDataAppDomainFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataAppDomain* appDomain); - + /* * Get the managed object representing the app domain. */ @@ -979,13 +979,13 @@ interface IXCLRDataAssembly : IUnknown * Get state flags, defined in CLRDataAssemblyFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataAssembly* assembly); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -1015,6 +1015,7 @@ typedef enum CLRDATA_MODULE_DEFAULT = 0x00000000, CLRDATA_MODULE_IS_DYNAMIC = 0x00000001, CLRDATA_MODULE_IS_MEMORY_STREAM = 0x00000002, + CLRDATA_MODULE_IS_MAIN_MODULE = 0x00000004, } CLRDataModuleFlag; typedef enum @@ -1048,9 +1049,9 @@ typedef enum #pragma warning(push) #pragma warning(disable:28718) -/* +/* * Represents a loaded module. - * + * * Can be QI'd for a metadata interface or a symbol-store interface. */ [ @@ -1107,7 +1108,7 @@ interface IXCLRDataModule : IUnknown */ HRESULT GetTypeDefinitionByToken([in] mdTypeDef token, [out] IXCLRDataTypeDefinition** typeDefinition); - + /* * Look up methods by name. */ @@ -1117,7 +1118,7 @@ interface IXCLRDataModule : IUnknown HRESULT EnumMethodDefinitionByName([in,out] CLRDATA_ENUM* handle, [out] IXCLRDataMethodDefinition** method); HRESULT EndEnumMethodDefinitionsByName([in] CLRDATA_ENUM handle); - + HRESULT StartEnumMethodInstancesByName([in] LPCWSTR name, [in] ULONG32 flags, [in] IXCLRDataAppDomain* appDomain, @@ -1125,7 +1126,7 @@ interface IXCLRDataModule : IUnknown HRESULT EnumMethodInstanceByName([in,out] CLRDATA_ENUM* handle, [out] IXCLRDataMethodInstance** method); HRESULT EndEnumMethodInstancesByName([in] CLRDATA_ENUM handle); - + /* * Get a method definition by metadata token. */ @@ -1143,7 +1144,7 @@ interface IXCLRDataModule : IUnknown HRESULT EnumDataByName([in,out] CLRDATA_ENUM* handle, [out] IXCLRDataValue** value); HRESULT EndEnumDataByName([in] CLRDATA_ENUM handle); - + /* * Get the module's base name. */ @@ -1163,13 +1164,13 @@ interface IXCLRDataModule : IUnknown * Get state flags, defined in CLRDataModuleFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataModule* mod); - + /* * Get the memory regions associated with this module. */ @@ -1201,9 +1202,9 @@ interface IXCLRDataModule : IUnknown #pragma warning(pop) -/* +/* * Represents additional APIs for a loaded module. - * + * */ [ object, @@ -1257,7 +1258,7 @@ interface IXCLRDataTypeDefinition : IUnknown */ HRESULT GetMethodDefinitionByToken([in] mdMethodDef token, [out] IXCLRDataMethodDefinition** methodDefinition); - + /* * Enumerate instances of this definition. */ @@ -1285,18 +1286,18 @@ interface IXCLRDataTypeDefinition : IUnknown * Get standard element type. */ HRESULT GetCorElementType([out] CorElementType* type); - + /* * Get state flags, defined in CLRDataTypeFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataTypeDefinition* type); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -1354,7 +1355,7 @@ interface IXCLRDataTypeDefinition : IUnknown [out, size_is(nameBufLen)] WCHAR nameBuf[], [out] IXCLRDataTypeDefinition** type, [out] ULONG32* flags); - + /* * Request notification when the given type is * loaded or unloaded. @@ -1411,7 +1412,7 @@ interface IXCLRDataTypeInstance : IUnknown HRESULT EnumMethodInstanceByName([in,out] CLRDATA_ENUM* handle, [out] IXCLRDataMethodInstance** method); HRESULT EndEnumMethodInstancesByName([in] CLRDATA_ENUM handle); - + /* * Get the number of static fields in the type. * OBSOLETE: Use GetNumStaticFields2. @@ -1475,13 +1476,13 @@ interface IXCLRDataTypeInstance : IUnknown * Get state flags, defined in CLRDataTypeFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataTypeInstance* type); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -1640,12 +1641,12 @@ interface IXCLRDataMethodDefinition : IUnknown * the same target state. */ HRESULT IsSameObject([in] IXCLRDataMethodDefinition* method); - + /* * Get the latest EnC version of this method. */ HRESULT GetLatestEnCVersion([out] ULONG32* version); - + /* * Get the IL code regions associated with this method. */ @@ -1653,14 +1654,14 @@ interface IXCLRDataMethodDefinition : IUnknown HRESULT EnumExtent([in, out] CLRDATA_ENUM* handle, [out] CLRDATA_METHDEF_EXTENT* extent); HRESULT EndEnumExtents([in] CLRDATA_ENUM handle); - + /* * Request notification when code is generated or * discarded for the method. */ HRESULT GetCodeNotification([out] ULONG32* flags); HRESULT SetCodeNotification([in] ULONG32 flags); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -1717,18 +1718,18 @@ interface IXCLRDataMethodInstance : IUnknown * Get state flags, defined in CLRDataMethodFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Determine whether the given interface represents * the same target state. */ HRESULT IsSameObject([in] IXCLRDataMethodInstance* method); - + /* * Get the EnC version of this instance. */ HRESULT GetEnCVersion([out] ULONG32* version); - + /* * Enumerate this method's parameterization. */ @@ -1742,12 +1743,12 @@ interface IXCLRDataMethodInstance : IUnknown HRESULT GetILOffsetsByAddress([in] CLRDATA_ADDRESS address, [in] ULONG32 offsetsLen, [out] ULONG32 *offsetsNeeded, - [out, size_is(offsetsLen)] + [out, size_is(offsetsLen)] ULONG32 ilOffsets[]); HRESULT GetAddressRangesByILOffset([in] ULONG32 ilOffset, [in] ULONG32 rangesLen, [out] ULONG32 *rangesNeeded, - [out, size_is(rangesLen)] + [out, size_is(rangesLen)] CLRDATA_ADDRESS_RANGE addressRanges[]); HRESULT GetILAddressMap([in] ULONG32 mapLen, [out] ULONG32 *mapNeeded, @@ -1761,7 +1762,7 @@ interface IXCLRDataMethodInstance : IUnknown HRESULT EnumExtent([in, out] CLRDATA_ENUM* handle, [out] CLRDATA_ADDRESS_RANGE* extent); HRESULT EndEnumExtents([in] CLRDATA_ENUM handle); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -1797,8 +1798,8 @@ typedef enum ] interface IXCLRDataTask : IUnknown { - /* - * Get the process for this task. + /* + * Get the process for this task. */ HRESULT GetProcess([out] IXCLRDataProcess** process); @@ -1808,7 +1809,7 @@ interface IXCLRDataTask : IUnknown */ HRESULT GetCurrentAppDomain([out] IXCLRDataAppDomain **appDomain); - /* + /* * Get a unique, stable identifier for this task. */ HRESULT GetUniqueID([out] ULONG64* id); @@ -1823,19 +1824,19 @@ interface IXCLRDataTask : IUnknown * the same target state. */ HRESULT IsSameObject([in] IXCLRDataTask* task); - + /* * Get the managed object representing the task. */ HRESULT GetManagedObject([out] IXCLRDataValue** value); - + /* * Mark the task so that it attempts to reach the * given execution state the next time it executes. */ HRESULT GetDesiredExecutionState([out] ULONG32* state); HRESULT SetDesiredExecutionState([in] ULONG32 state); - + /* * Create a stack walker to walk this task's stack. The * flags parameter takes a bitfield of values from the @@ -1844,13 +1845,13 @@ interface IXCLRDataTask : IUnknown HRESULT CreateStackWalk([in] ULONG32 flags, [out] IXCLRDataStackWalk** stackWalk); - /* + /* * Get the current OS thread ID for this task. If this task is on a fiber, - * the ID may change over time. + * the ID may change over time. */ HRESULT GetOSThreadID([out] ULONG32* id); - /* + /* * Get the current context for this task, controlled by the given flags. * Returns S_FALSE if the size is not large enough. */ @@ -1859,7 +1860,7 @@ interface IXCLRDataTask : IUnknown [out] ULONG32* contextSize, [out, size_is(contextBufSize)] BYTE contextBuf[]); - /* + /* * Destructively set the current context for this task. */ HRESULT SetContext([in] ULONG32 contextSize, @@ -1901,10 +1902,10 @@ interface IXCLRDataTask : IUnknown typedef enum { /* Frame not recognized */ - CLRDATA_SIMPFRAME_UNRECOGNIZED = 0x1, + CLRDATA_SIMPFRAME_UNRECOGNIZED = 0x1, /* Frame corresponds to a managed method */ - CLRDATA_SIMPFRAME_MANAGED_METHOD = 0x2, + CLRDATA_SIMPFRAME_MANAGED_METHOD = 0x2, /* Frame corresponds to runtime-controlled managed code */ CLRDATA_SIMPFRAME_RUNTIME_MANAGED_CODE = 0x4, @@ -1923,7 +1924,7 @@ typedef enum CLRDATA_DETFRAME_EXCEPTION_FILTER, CLRDATA_DETFRAME_SECURITY, CLRDATA_DETFRAME_CONTEXT_POLICY, - CLRDATA_DETFRAME_INTERCEPTION, + CLRDATA_DETFRAME_INTERCEPTION, CLRDATA_DETFRAME_PROCESS_START, CLRDATA_DETFRAME_THREAD_START, CLRDATA_DETFRAME_TRANSITION_TO_MANAGED, @@ -1967,7 +1968,7 @@ typedef enum ] interface IXCLRDataStackWalk : IUnknown { - /* + /* * Get the current context of this stack walk. * This is the original context with any unwinding * applied to it. As unwinding may only restore @@ -1980,7 +1981,7 @@ interface IXCLRDataStackWalk : IUnknown [out] ULONG32* contextSize, [out, size_is(contextBufSize)] BYTE contextBuf[]); - /* + /* * Change the current context of this stack walk, allowing the * debugger to move it to an arbitrary context. Does not actually * alter the current context of the thread whose stack is being walked. @@ -2013,7 +2014,7 @@ interface IXCLRDataStackWalk : IUnknown */ HRESULT GetStackSizeSkipped([out] ULONG64* stackSizeSkipped); - /* + /* * Return information about the type of the current frame */ HRESULT GetFrameType([out] CLRDataSimpleFrameType* simpleType, @@ -2030,7 +2031,7 @@ interface IXCLRDataStackWalk : IUnknown [in] ULONG32 outBufferSize, [out, size_is(outBufferSize)] BYTE* outBuffer); - /* + /* * Change the current context of this stack walk, allowing the * debugger to move it to an arbitrary context. Does not actually * alter the current context of the thread whose stack is being walked. @@ -2049,13 +2050,13 @@ interface IXCLRDataStackWalk : IUnknown ] interface IXCLRDataFrame : IUnknown { - /* + /* * Return information about the type of this frame. */ HRESULT GetFrameType([out] CLRDataSimpleFrameType* simpleType, [out] CLRDataDetailedFrameType* detailedType); - /* + /* * Get the stack walk context as of this frame. * This is the original context with any unwinding * applied to it. As unwinding may only restore @@ -2125,7 +2126,7 @@ interface IXCLRDataFrame : IUnknown [in, size_is(inBufferSize)] BYTE* inBuffer, [in] ULONG32 outBufferSize, [out, size_is(outBufferSize)] BYTE* outBuffer); - + /* * Enumerate the full parameterization of the frame's * type and method. @@ -2143,7 +2144,7 @@ interface IXCLRDataFrame : IUnknown ] interface IXCLRDataFrame2 : IUnknown { - /* + /* * Retun generic token if available. */ HRESULT GetExactGenericArgsToken([out] IXCLRDataValue** genericToken); @@ -2189,7 +2190,7 @@ interface IXCLRDataExceptionState : IUnknown * Get state flags, defined in CLRDataExceptionStateFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * For nested exceptions, get the exception that * was being handled when this exception occurred. @@ -2200,7 +2201,7 @@ interface IXCLRDataExceptionState : IUnknown * Get the managed object representing the exception. */ HRESULT GetManagedObject([out] IXCLRDataValue** value); - + /* * Get the standard base type of the exception. */ @@ -2213,7 +2214,7 @@ interface IXCLRDataExceptionState : IUnknown HRESULT GetString([in] ULONG32 bufLen, [out] ULONG32 *strLen, [out, size_is(bufLen)] WCHAR str[]); - + HRESULT Request([in] ULONG32 reqCode, [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] BYTE* inBuffer, @@ -2270,7 +2271,7 @@ interface IXCLRDataValue : IUnknown * Get state flags, defined in CLRDataValueFlag. */ HRESULT GetFlags([out] ULONG32* flags); - + /* * Get the address of the object. * Fails unless the object is a single contiguous @@ -2301,13 +2302,13 @@ interface IXCLRDataValue : IUnknown */ HRESULT GetType([out] IXCLRDataTypeInstance **typeInstance); - /* + /* * Get the number of fields in the object. * OBSOLETE: Use GetNumFields2. */ HRESULT GetNumFields([out] ULONG32 *numFields); - /* + /* * Gets one field of the object. * * Because field ordering is not fixed, can also return name @@ -2390,12 +2391,12 @@ interface IXCLRDataValue : IUnknown * For other values there is no associated type. */ HRESULT GetAssociatedType([out] IXCLRDataTypeInstance** assocType); - + /* * String methods that only work for string data values. */ - /* + /* * Return the length and contents of the string. */ HRESULT GetString([in] ULONG32 bufLen, @@ -2518,7 +2519,7 @@ interface IXCLRDataExceptionNotification2 : IXCLRDataExceptionNotification interface IXCLRDataExceptionNotification3 : IXCLRDataExceptionNotification2 { /* - * The specified GC event was triggered. The GC event is passed in an + * The specified GC event was triggered. The GC event is passed in an * opaque structure, whose structure is given by buffSize */ HRESULT OnGcEvent([in] GcEvtArgs gcEvtArgs); @@ -2545,8 +2546,8 @@ interface IXCLRDataExceptionNotification4 : IXCLRDataExceptionNotification3 interface IXCLRDataExceptionNotification5 : IXCLRDataExceptionNotification4 { /* - * New code was generated for a method. The given address is the start address of + * New code was generated for a method. The given address is the start address of * the native newly jitted code. */ HRESULT OnCodeGenerated2([in] IXCLRDataMethodInstance* method, [in] CLRDATA_ADDRESS nativeCodeLocation); -} \ No newline at end of file +} diff --git a/src/pal/prebuilt/inc/xclrdata.h b/src/pal/prebuilt/inc/xclrdata.h index 3ce477ec8..6477e8b15 100644 --- a/src/pal/prebuilt/inc/xclrdata.h +++ b/src/pal/prebuilt/inc/xclrdata.h @@ -3,7 +3,6 @@ // See the LICENSE file in the project root for more information. - /* this ALWAYS GENERATED file contains the definitions for the interfaces */ @@ -791,7 +790,7 @@ EXTERN_C const IID IID_IXCLRLibrarySupport; typedef SIZE_T ( __stdcall *CDSTranslateAddrCB )( IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020000, CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020001, - wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020002, + WCHAR *__MIDL____MIDL_itf_xclrdata_0000_00020002, SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020003, DWORDLONG *__MIDL____MIDL_itf_xclrdata_0000_00020004); @@ -799,21 +798,21 @@ typedef SIZE_T ( __stdcall *CDSTranslateFixupCB )( IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020006, CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020007, SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020008, - wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020009, + WCHAR *__MIDL____MIDL_itf_xclrdata_0000_00020009, SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020010, DWORDLONG *__MIDL____MIDL_itf_xclrdata_0000_00020011); typedef SIZE_T ( __stdcall *CDSTranslateConstCB )( IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020013, DWORD __MIDL____MIDL_itf_xclrdata_0000_00020014, - wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020015, + WCHAR *__MIDL____MIDL_itf_xclrdata_0000_00020015, SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020016); typedef SIZE_T ( __stdcall *CDSTranslateRegrelCB )( IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020018, unsigned int rega, CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020019, - wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020020, + WCHAR *__MIDL____MIDL_itf_xclrdata_0000_00020020, SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020021, DWORD *__MIDL____MIDL_itf_xclrdata_0000_00020022); @@ -854,7 +853,7 @@ EXTERN_C const IID IID_IXCLRDisassemblySupport; SIZE_T __MIDL__IXCLRDisassemblySupport0003) = 0; virtual SIZE_T STDMETHODCALLTYPE CchFormatInstr( - wchar_t *__MIDL__IXCLRDisassemblySupport0004, + WCHAR *__MIDL__IXCLRDisassemblySupport0004, SIZE_T __MIDL__IXCLRDisassemblySupport0005) = 0; virtual void *STDMETHODCALLTYPE PvClient( void) = 0; @@ -914,7 +913,7 @@ EXTERN_C const IID IID_IXCLRDisassemblySupport; SIZE_T ( STDMETHODCALLTYPE *CchFormatInstr )( IXCLRDisassemblySupport * This, - wchar_t *__MIDL__IXCLRDisassemblySupport0004, + WCHAR *__MIDL__IXCLRDisassemblySupport0004, SIZE_T __MIDL__IXCLRDisassemblySupport0005); void *( STDMETHODCALLTYPE *PvClient )( @@ -3301,7 +3300,8 @@ enum __MIDL___MIDL_itf_xclrdata_0000_0008_0001 { CLRDATA_MODULE_DEFAULT = 0, CLRDATA_MODULE_IS_DYNAMIC = 0x1, - CLRDATA_MODULE_IS_MEMORY_STREAM = 0x2 + CLRDATA_MODULE_IS_MEMORY_STREAM = 0x2, + CLRDATA_MODULE_IS_MAIN_MODULE = 0x4 } CLRDataModuleFlag; typedef /* [public][public][public] */ diff --git a/src/pal/src/CMakeLists.txt b/src/pal/src/CMakeLists.txt index e49cdcffc..442caf349 100644 --- a/src/pal/src/CMakeLists.txt +++ b/src/pal/src/CMakeLists.txt @@ -219,19 +219,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin) endif(CMAKE_SYSTEM_NAME STREQUAL Darwin) if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) - find_library(INTL intl) target_link_libraries(coreclrpal pthread rt - ${INTL} ) endif(CMAKE_SYSTEM_NAME STREQUAL FreeBSD) if(CMAKE_SYSTEM_NAME STREQUAL Linux) - if(CLR_CMAKE_PLATFORM_ALPINE_LINUX OR CLR_CMAKE_PLATFORM_ANDROID) - find_library(INTL intl) - endif() - # On Android, we don't need to link with gcc_s, pthread and rt if(NOT CLR_CMAKE_PLATFORM_ANDROID) target_link_libraries(coreclrpal @@ -258,7 +252,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) if(CLR_MAKE_PLATFORM_ANDROID) find_library(ANDROID_SUPPORT NAMES android-support) find_library(ANDROID_GLOB NAMES android-glob) - find_library(INTL NAMES intl) if(ANDROID_SUPPORT STREQUAL ANDROID_SUPPORT-NOTFOUND) message(FATAL_ERROR "Cannot find android-support.") @@ -267,30 +260,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) if(ANDROID_GLOB STREQUAL ANDROID_GLOB-NOTFOUND) message(FATAL_ERROR "Cannot find android-glob.") endif() - - if(INTL STREQUAL INTL-NOTFOUND) - message(FATAL_ERROR "Cannot find libintl.") - endif() endif() target_link_libraries(coreclrpal dl ) - - if(NOT INTL STREQUAL INTL-NOTFOUND) - target_link_libraries(coreclrpal ${INTL}) - endif(NOT INTL STREQUAL INTL-NOTFOUND) - endif(CMAKE_SYSTEM_NAME STREQUAL Linux) if(CMAKE_SYSTEM_NAME STREQUAL NetBSD) add_definitions(-D_KMEMUSER) - find_library(INTL intl) find_library(KVM kvm) target_link_libraries(coreclrpal pthread rt - ${INTL} ${KVM} ) endif(CMAKE_SYSTEM_NAME STREQUAL NetBSD) diff --git a/src/pal/src/locale/unicode.cpp b/src/pal/src/locale/unicode.cpp index 81d3752a3..7bd059678 100644 --- a/src/pal/src/locale/unicode.cpp +++ b/src/pal/src/locale/unicode.cpp @@ -37,13 +37,7 @@ Revision History: #include #include -#if HAVE_LIBINTL_H -#include -#endif // HAVE_LIBINTL_H #include -#if HAVE_COREFOUNDATION -#include -#endif // HAVE_COREFOUNDATION #include @@ -791,71 +785,3 @@ EXIT: PERF_EXIT(WideCharToMultiByte); return retval; } - -extern char* g_szPalLibraryPath; - -/*++ -Function : - -PAL_BindResources - bind the resource domain to the path where the coreclr resides - -Returns TRUE if it succeeded, FALSE if it failed due to OOM ---*/ -BOOL -PALAPI -PAL_BindResources(IN LPCSTR lpDomain) -{ -#if HAVE_LIBINTL_H - _ASSERTE(g_szPalLibraryPath != NULL); - char * coreCLRDirectoryPath; - PathCharString coreCLRDirectoryPathPS; - int len = strlen(g_szPalLibraryPath); - coreCLRDirectoryPath = coreCLRDirectoryPathPS.OpenStringBuffer(len); - if (NULL == coreCLRDirectoryPath) - { - return FALSE; - } - DWORD size = FILEGetDirectoryFromFullPathA(g_szPalLibraryPath, len, coreCLRDirectoryPath); - coreCLRDirectoryPathPS.CloseBuffer(size); - - LPCSTR boundPath = bindtextdomain(lpDomain, coreCLRDirectoryPath); - - return boundPath != NULL; -#else // HAVE_LIBINTL_H - // UNIXTODO: Implement for Unixes without libintl if necessary - return TRUE; -#endif // HAVE_LIBINTL_H -} - -/*++ -Function : - -PAL_GetResourceString - get localized string for a specified resource. -The string that is passed in should be the English string, since it -will be returned if an appropriately localized version is not found. - -Returns number of characters retrieved, 0 if it failed. ---*/ -int -PALAPI -PAL_GetResourceString( - IN LPCSTR lpDomain, - IN LPCSTR lpResourceStr, - OUT LPWSTR lpWideCharStr, - IN int cchWideChar - ) -{ -#if HAVE_LIBINTL_H - // NOTE: dgettext returns the key if it fails to locate the appropriate - // resource. In our case, that will be the English string. - LPCSTR resourceString = dgettext(lpDomain, lpResourceStr); -#else // HAVE_LIBINTL_H - // UNIXTODO: Implement for OSX using the native localization API - - // This is a temporary solution until we add the real native resource support. - LPCSTR resourceString = lpResourceStr; -#endif // HAVE_LIBINTL_H - - int length = strlen(resourceString); - return UTF8ToUnicode(lpResourceStr, length + 1, lpWideCharStr, cchWideChar, 0); -}