summaryrefslogtreecommitdiff
path: root/src/dlls/mscoree
AgeCommit message (Collapse)AuthorFilesLines
2019-01-03Adds portable version of EncodingTable (#21735)Marek Safar1-1/+0
* Adds portable version of EncodingTable Most of the implementation is extracted from CoreRT * Use string comparer directly * Remove no longer used COMNlsInfo * Adds localization support * Removes FeatureCoreFxGlobalization configuration * Remove redudant encodings look up from GetEncoding * Keep Hashtable for nameToCodePage as it does not lock on read * Replace locked dictionary lookup with short switch * Include comment with msbuild task link used to generate the data file
2019-01-02Delete lstrlen from Unix PAL (#21745)Jan Kotas1-2/+0
strlen/wcslen works just fine.
2018-11-09Fix typos in comments (#20908)Li Shengqiu1-1/+1
2018-11-08Fix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)Mike McLaughlin1-0/+1
Fixes issue #20205. This has been happening in more and more scenarios: 1) SOS when the coreclr hosting the SOS managed code is a different version that the one being debugged 2) Lee ran into it with ClrMD for Linux 3) The dotnet-diagnostictests repo with the current arcade build changes because the coreclr version hosting mdbg is different than the version running the debuggees. This fix is simple: only link the tracepointprovider.cpp code that loads libcoreclrtraceptprovider.so into libcoreclr.so and not in any other module that uses the PAL library (libdbgshim.so, libmscordaccore.so, etc.). Create a new "tracepointprovider" library with the tracepointprovider.cpp source file in it and remove it from the "coreclrpal". Link this new lib into libcoreclr.so.
2018-09-28Enable BSTR Marshaling Support for x-plat PInvoke (#19766)Luqun Lou1-0/+2
2018-07-22Enable profiler attach on Windows (#18762)Sung Yoon Whang1-0/+1
* try building clr with prof attach enabled * define ICLRProfiling interface * profattach.dll now builds with CreateCLRProfiling export * remove try catch * basic attach working now * build with profiler attach feature only on win * Fix linux build * cleanup * more cleanup * more cleanup * remove profattach dll * remove useless unix exports in mscorwks * remove profattach from dll cmakelist * Add back ifdef * cleanup * change LINUX to UNIX in clrdefinitions * Fix broken checked builds * Remove CLRProfilingClassFactory and metadata.h include from profattach.cpp * remove useless extern C * Add this back in * adding ifndef DACCESS_COMPILE * Try building with FWD define ICLRProfiling interface * Test commit - removing additional definition from metahost.h to see if this will pass CI runs * Address pr comments
2018-04-05Rename conflicting definitions VER_MAJOR/MINORVERSION macros (#17364)Jan Kotas1-1/+1
* Rename conflicting definitions of VER_MAJOR/MINORVERSION These macros are defined by Windows SDK. They were overload to mean CLR version that was causing interesting redefinition issues. * Delete workaround for redefined Windows SDK macros * Delete ProjectN version * Delete dead code
2018-03-19Use better path (fixes #17004)Vance Morrison1-1/+1
2018-03-16This change make DacTableGen work for VS2017Vance Morrison1-1/+8
There was a issue (see https://github.com/dotnet/coreclr/issues/11305) where a tool used in the CoreCLR build called DacTableGen requires a old version of the msdia120.dll. The symptom is that this tool would fail with a class not registered errror. This tool comes from a very old nuget package microsoft.dotnet.buildtools.coreclr, which we no longer can build easly. Our guidance now is to move tools that are only used in one repository (like this one) out of nuget packages and simply build them as part of the build. This change makes a step in that direction. The DacTableGen code actually was already in the CoreCLR repo, so this change 1. Fixes the source of DacTableGen so that tool no longer needs a com object to be registered (but it DOES need msdia140.dll to be on the path. This is true for VS2017. 2. Turns on the build of DacTableGen 3. Change the build use the built DacTableGen (unless running on VS2017, in that case we use the the version in the tool package. 4.) Remove the hack that warns people to register msdia120 (since you don't need to anymore) There is also an unrelated addition to the docs. This change should still work for VS2015 (because it falls back to the old DacTableGen in that case) Finally we should move to using the Linux method of creating the DAC, and so all these tools and their nuget package can be removed.
2018-03-06Add tracepointprovider.cpp directly to PAL instead of to a separate ↵Brian Robbins1-5/+0
tracepointprovider library. (#16771)
2018-03-06Remove libuuid usage (#16643)Jan Vorlicek1-1/+0
* Remove libuuid usage This change removes dependency on the libuuid library that is used for GUID creation only. It implements it using a random generator instead. It also modifies return type of PAL_Random to VOID since it was always returning TRUE and none of the existing callers were checking it. 1. Port the GUID creation to managed code. 2. Modify the PAL_Random to have 6 times better perf so that the perf of the CoCreateGuid that is used in the native runtime doesn't degrade that much w.r.t the previous state when the libuuid was used. 3. Use Interop.GetRandomBytes on Unix and fix Windows
2018-02-17delete unused mirror files (#16423)Sergey Andreenko2-2/+0
2018-01-29Move TimeZoneInfo.Unix.cs to shared CoreLib partition (#16057)Jan Kotas1-36/+0
- Refactored internal version of System.IO.File to be similar to full corefx version - Cleaned up some Unix PAL APIs that are no longer used Contributes to dotnet/corert#5248
2018-01-24Add "CLRJitAttachState" global export from coreclr.dll that contains the ↵Mike McLaughlin1-0/+3
CLR_DEBUGGING_PROCESS_FLAGS for VS. (#15973)
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-20/+26
* Revert "Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)" This reverts commit 302005ca8ae14eade37ddf4ac6e900617c1c166a. * Fix ARM build break * Use more explicit references to resolve build failures * Fix compat with python3 * Disable FeaturePerfTracing on Windows as it is not ready * Disable test for incomplete functionality * Fix test diabled patterns * Add license header * Use keyword types for managed code * Add message prefix * More precisly condition generation of eventing sources * Remove erroneously added changes
2017-12-21Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)Victor "Nate" Graf1-26/+20
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-20/+26
* [squashed] most work complete to enable EventPipe on Windows * Eventpipe now builds on Windows * Ensure evevntpipe is intialized on Windows * Resolve the location of python from build.cmd * Ensure eventing files are generated when needed * moving linkage declaration to cmake * create new event from constructor * enable FEATURE_EVENT_TRACE and FEATURE_PERF_TRACE everywhere * [WIP] checkpoint in fixing contarct errors * add another possible python location * Fix double delete bug in EventPipeConfiguration destructor * Fix typo in function name * Revert changes to .gitgnore * bump to netstandard1.6 in preperation for new version of TraceEvent * Revert changes to groovy files * revert changes to perf-prep scripts * add common.h and use nothrow * Fix issue which was causing double delete of configprovider * Add new test utilizing TraceEvent * Remove accidentally added local directory reference * Add comment to explain the addition of misc/tracepointprovider.cpp * Add back sys.exit(0) and refactor * Change conditional to be more direct * Better handle NULL config * Initialize m_deleteDefered * Eliminate obsolete field * Fix spelling error * Fix nits * Make smaple progiler timing functions easier to read * Move projects back to netstandard1.4 * Incomplete improvements to EventPipeTrace test * Add event integrity checks to test * Clean up some left over code * Add EventSource based test * Remove unused PAL tests on Windows * Fix Linux build breaks * Minor changes to CMake files * Remove //HACK for hack that was previously removed * Fix formatting and negate a #ifdef * Add conditional to ensure PERFTRACING is not enabled without EVENT_TRACE * Take lock on EventPipeProvider and EventPipeConfiguration destruction * Load winmm.dll at runtime * Change function name and compile conditions * Move typedef into #ifndef * Use the correct config in setup * Change lifecycle managment of EventPipeConfiguration's configuration provider * Enable EventPipe tests pri0 and disable broken tests * Replace python3 only error with python2 compatable one * Make common.csproj build pri0 * Change TraceEvent version to 2.0.2 to match published verison * Address cross build failure * Remove use of undefined variable * Add crossgen fix to .cmd * Use more specific types to avoid marshalling errors * Use Assert-style statements and remove one check * Fix cross arch build * Fix flipped branch * Bring build.cmd changes to build.sh * Fix cmake writing * Revert "Bring build.cmd changes to build.sh" This reverts commit 893c6492548d8bc9859ebba5b1b810aa630fac63. * remove stdlib.h * Fix out of order null check
2017-10-27Delete dead code (#14703)Jan Kotas1-54/+0
2017-09-27Add SetThreadIdealProcessorEx PAL API (#13606)Xiangyang (Mark) Guo1-0/+1
* add SetThreadIdealProcessorEx PAL API * fix lpPreviousIdealProcessor
2017-08-28Delete dead PAL functions (#13613)Justin Van Patten1-6/+0
* Remove duplicate define * Remove unused wincon.h defines * Delete unused LockFile/UnlockFile * Remove unused WszCryptGetDefaultProvider define * Remove unused defines * Remove unused defines * Delete unused GetDiskFreeSpace * Delete unused RegisterEventSource\DeregisterEventSource\ReportEvent * Remove unused defines * Delete unused AreFileApisANSI * Delete unused MoveFileW * Delete unused SetFileTime * Delete unused GetFileTime * Delete unused FileTimeToDosDateTime * Delete unused GetFileType * Delete unused GetConsoleCP * Delete unused GetExitCodeThread * Delete unused FlushViewOfFile * Delete unused RtlZeroMemory * Delete unused MoveFileA
2017-08-22[Local GC] Enable building the GC as a shared library (#13137)Sean Gillespie2-13/+0
* [Local GC] Build the GC using system headers * Disable features to get the GC to build * Get rid of the separate 'GC PAL' build * Remove unused stuff * Don't build gcenv.os.cpp when linking in a standalone gc * Stub out CPUGroupInfo and NumaNodeInfo * Stub out IsGCThread and friends * Build the GC as a shared library :tada: * Build, link, and run! :tada: * Fix standalone GC build break * Fixes where the GC's MethodTable and VM's MethodTable classes disagree * Integrate a standalone GC into the CoreCLR build system (so it gets copied to the output folder). Re-enable some ifdef-ed out includes that are required for a non-standalone build of the GC. * Bring changes to Unix and fix the Unix build. Implement some compiler intrinsic wrappers and alignment functions expected by the GC. * Fix the Windows build * 1. Code review feedback: use standard types for BitScanForward and BitScanForward64 2. Delete FEATURE_COM stuff from the build system, not needed for this PR 3. Fix the Unix build * Fix the Windows x86 build - the _BitScanForward64 intrinsic is not available when targeting 32-bit platforms * Remove a number of things from gcenv.base.h that are not used * Remove a linker workaround now that we are not linking a standalone GC into the runtime * Remove dead code, make the lack of GC_PROFILING for standalone gc not break profiling on the non-standalone build * Code review feedback - use add_library_clr and other cmake-related fixes * Fix include indentation * Remove some extraneous parameters to cmake functions (cmake is remarkably lenient...)
2017-08-22Delete some dead PAL code (#13469)Justin Van Patten1-1/+0
* Delete some dead PAL code GetComputerName and GetUserName are not used. * HAVE_GETPWUID_R can now be deleted
2017-07-06Pin GC threads to corresponding processors on Linux (#12486)Xiangyang (Mark) Guo1-0/+1
* fix SetThreadGroupAffinity, add SetThreadAffinityMask and pin GC threads to processors on Linux * fix loop count and error handler
2017-06-21Fix event, semaphore, mutex create/open to request the maximum allowe… ↵Koundinya Veluri1-0/+3
(#12381) Fix event, semaphore, mutex create/open to request the maximum allowed access Functional fix for #11306 - Ported dotnet/corert@78fae17f5434839a8720603973ff53f27e27f916 to CoreCLR, see that commit for details on the hang during mutex creation that is also fixed by this change. - Replaced all uses of the *_ALL_ACCESS flags relevant to events, semaphores, and mutexes
2017-06-09Enable CPU Group on Linux AMD64 (#12140)Xiangyang (Mark) Guo1-0/+4
* fix GetCurrentProcessCpuCount on Linux AMD64 * code refactor * expose NUMA related APIs on Linux
2017-06-01[Local GC] Scaffolding for loading a standalone GC (#11242)Sean Gillespie2-1/+8
* Configure the build system to build a CoreCLR capable of loading a standalone GC * Proto-implementation of dynamic GC loading * Build the GC with the VM's CMakeLists when doing a non-standalone build of the GC * [Local GC] Introduce a new feature define, FEATURE_STANDALONE_GC_ONLY, to be used by the CI to explicitly test local GC dynamic loading code paths * Fix the FEATURE_STANDALONE_GC_ONLY build for unix linkers * Rebase against master * Code review feedback: use the existing Unix exports file
2017-06-01gdbjit symbols exported (#11739)chunseoklee2-0/+8
* multiple export files as input for generate_exports_file Now, generate_exports_file is able to process multiple input arguments. This feature is useful when you want to export additional symbols depending on compile time dependannt feature(-D option.) * export file for gdbjit added src/dlls/mscoree/gdbjit_unixexports.src file added To enable gdbjit feature, libcoreclr.so should have __jit_xxx symbols. Current tizen build system removes .symtab section during rpm debuginfo build. This patch moves __jit_xx symbols into .dynsym section.
2017-05-29Implement GetCurrentProcessCpuCount for Unix and merge NumberOfProcesors ↵Tom Deseyn1-0/+1
implementations. (#11742) * Implement GetCurrentProcessCpuCount for Unix and merge NumberOfProcessors implementations. * Split GetCurrentProcessCpuCount in PAL and non-PAL parts * gcenv.unix.cpp: GetCurrentProcessAffinityMask: revert, GetCurrentProcessCpuCount: add implementation * bugfix: #if instead of #ifdef HAVE_SCHED_GETAFFINITY * Remove PAL_GetCurrentProcessCpuCount * gcenv.unix: implement GetCurrentProcessAffinityMask, GetCurrentProcessCpuCount * numa.cpp: initialize g_cpuToAffinity[i].Number when numa.h is missing * cleanup * mscorwks_unixexports.src: Add GetProcessAffinityMask * PR feedback * Add GetProcessAffinityMask to mscordac_unixexports.src
2017-05-06Log Events to EventPipe on Linux (#11433)Brian Robbins1-0/+6
* Implement the EventPipe object model for providers and events. * Plumb Runtime Events into EventPipe (#11145) Plumb runtime ETW events into the EventPipe. * Fix bug where all events except for SampleProfiler events were never enabled. * Plumb EventPipeEventInstance through the EventPipe. * Implement EventPipeFile and FastSerializer. * Write event contents to the EventPipeFile. * Only build EventPipe on Linux. * Conditionally add a sentinel value marking event end. * Send SampleProfiler events to the EventPipeFile. * Fix provider ID printing to JSON file. * Write the start date/time, timestamp, and clock frequency into the trace file. * Support unloading of EventPipeProviders. * Handle failure cases when we can't walk the stack or are shutting down. * Fix a bug where we pass a null src pointer to memcpy.
2017-04-20[x86/Linux] Use CDECL as STDAPICALLTYPE (#10969)Jonghyun Park1-1/+1
* [x86/Linux] Use CDECL as STDAPICALLTYPE * Use system default calling convention for internal functions
2017-04-18Remove /RELEASE option required for device drivers (#11023)Gaurav Khanna1-0/+4
2017-04-13Ensure Environment.ExitCode works correctly after app domain unloaded. (#10842)Jim Ma3-5/+38
* Ensure Environment.ExitCode works correctly after app domain unloaded. This PR addresses 2 problems of Environment.ExitCode: 1. Can't get correct exit code of main function. 2. Can't set %errorlevel%. Details can be found on #6206 Fix #6206
2017-03-29Fix dependency to coreclr and mscorrc in Linux (#10138)Hyeongseok Oh1-1/+3
* Fix dependency to coreclr and mscorrc in Linux Remove dependency with coreclr in some projects for Linux Recover build mscorrc for cross architecture in Linux * Fix CMakeLists.txt in src/dlls minimize uses of CLR_CROSS_COMPONENTS_BUILD flag in CMakeLists.txt Modify root/CMakeLists.txt to exclude corerun and coreconsole build during cross component build
2017-03-21Support Windows Minidumpnoahfalk3-1/+9
This is the coreclr portion of the work to complete issue #10334. It adds a resource to coreclr with a well-known name and format that can be used by MiniDumpWriteDump to discover and load custom dump collection extensions. At this time the OS work hasn't been implemented yet and the scenario won't work until their part is complete.
2017-03-09Fix incremental build of resources injected to coreclr.dll (#10045)Jan Vorlicek1-2/+6
* Fix incremental build of resources injected to coreclr.dll This change fixes the build of resources injected to coreclr.dll so that it happens only when its dependencies change and not at every build.
2017-03-02Fix incremental build on Unix (#9779)Jan Vorlicek1-8/+0
This change fixes issue with dactablerva.h being generated even if the libcoreclr.so hasn't changed. Also, the dependency of the daccess.cpp on this header was not honored by the build system and so even if the dactablerva.h was regenerated with a different contents, the daccess.cpp was not rebuilt.
2017-02-12Remove never defined FEATURE_FUSIONdanmosemsft1-24/+0
2017-02-10Remove always defined FEATURE_CORECLRdanmosemsft1-168/+0
2017-01-23[Local GC] Provide an implementation of GCToOSInterface for Unix-like ↵Sean Gillespie1-0/+6
platforms (#8976) * Add way to build with FEATURE_STANDALONE_GC from build.sh * Make CMake changes to build the GC 'PAL' as its own build target (to avoid -nostdinc). In addition, introduce a "GC PAL" that provides an implementation of GCToOSInterface on Unix-like platforms, for use with FEATURE_STANDALONE_GC.
2017-01-15Remove unused mscoree files and code (#8956)mikedn12-1591/+1
2016-12-26Remove files related to legacy build system (#8723)Robert4-549/+0
2016-12-08[x86/Linux] Fix inconsistent GetCLRFunction definitions (#8472)Jonghyun Park1-2/+0
* [x86/Linux] Fix inconsistency in GetCLRFunction definitions GetCLRFunction is treated as pfnGetCLRFunction_t which has __stdcall convention, but is implemented without __stdcall. This inconsistency causes segmentaion fault while initializing CoreCLR for x86/Linux. This commit fixes such inconsistency via adding __stdcall to GetCLRFunction implementation. In addition, this commit declares GetCLRFuntion in 'utilcode.h' and and revises .cpp files to include 'utilcode.h' instead of declaring 'GetCLRFunction'. * Remove unnecessary includes * Remove another unnecessay include
2016-11-02Suppress SOS.NETCore.dll error msg in release mode (#6975)chunseoklee1-11/+12
Suppress error msg when running coreclr without SOS.NETCore.dll in release mode
2016-11-01Fix GitHub build break caused by change #1636179John Chen1-0/+6
[tfs-changeset: 1636227]
2016-10-25Making MemoryFailPoint functional on xplatRama Krishnan Raghupathy1-0/+1
Expose GlobalMemoryStatusEx on Xplat
2016-10-04Add PGO GENPROFILE support to coreclr and clrjit (#7423)Daniel Podder1-0/+3
* Add PGO GENPROFILE support to coreclr and clrjit Update the cmake build system to enable support for Profile Guided Optimization (PGO) on Windows, and enable this feature for two target binaries (coreclr and clrjit). With this change, toggle between instrumented and profile-optimized settings for target binaries by passing pgoinstrument argument to the build.cmd Assume profile-optimized mode by default. Fall back to regular non-PGO optimized builds if profile data is not available.
2016-10-01Initial support of local variables and method arguments in GDB JIT interface ↵Evgeny Pavlov1-1/+2
(#7400)
2016-08-19Create SOS SymbolReader managed project and change SOS to use it. (#6783)Mike McLaughlin1-2/+2
* Change SOS to use wrapper class that is now in System.Diagnostics.StackTrace. The portable PDB helper code for SOS source/line support has been moved from System.Diagnostics.Debug.SymbolReader to a new managed SOS project in the coreclr repo called SOS.NETCore. The public APIs have now been made internal. Plumb through the loaded PE address to the managed SymbolReader functions so it can be used as a key. Fixed a stack trashing/overflow when a unresolved managed breakpoint is resolved because one of the module name buffers was too small (MAX_PATH_FNAME). Changed it (and others) to MAXLONGPATH. SOS now works with Portable PDBs on Windows. New dac private get module data request. Used to get the necessary info for portable PDBs. SOS now supports in-memory PE's on xplat and Windows. Needed to get and plumb though the in-memory PE layout where it is file based or loaded. Better Windows GetLineByILOffset support. Uses the SymbolReader and now works with in-memory PEs. Misc code formatting and general cleanup. * Code review feedback.
2016-07-22Set hr to S_OK instead of returning S_OKEvgeny Pavlov1-1/+1
2016-07-22Fix ildasm fail due missing GetInfoForMethod managed methodEvgeny Pavlov1-0/+1