platform/upstream/dotnet/runtime.git
5 years agoMerge pull request dotnet/coreclr#20838 from briansull/issue_18259
Brian Sullivan [Thu, 8 Nov 2018 23:01:32 +0000 (15:01 -0800)]
Merge pull request dotnet/coreclr#20838 from briansull/issue_18259

ValueNum add check for ZeroOffsetFldSeq on LclVar reads

Commit migrated from https://github.com/dotnet/coreclr/commit/ae4dc9cd50e50dd1f199fa457dc65495f26a71b4

5 years agoSpecify path to python3.5 for perf jobs (dotnet/coreclr#20443)
Michelle McDaniel [Thu, 8 Nov 2018 21:56:00 +0000 (13:56 -0800)]
Specify path to python3.5 for perf jobs (dotnet/coreclr#20443)

* Specify path to python3.5 for perf jobs

* Change path to python in throughput testing

Commit migrated from https://github.com/dotnet/coreclr/commit/383f22ccf240f3b66c3e9f1d161a3a75c4e40d80

5 years agoReplace reflection in an assert with ==
Michal Strehovský [Thu, 8 Nov 2018 16:15:26 +0000 (17:15 +0100)]
Replace reflection in an assert with ==

Reflection on private implementation of the CoreLib is disallowed in CoreRT to save disk space (we don't have to bother emitting the metadata).

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/3bab4929107943893c9f837bf8078e8533cc8e18

5 years agoAdd work item dumping support to SOS' ThreadPool command (dotnet/coreclr#20872)
Stephen Toub [Thu, 8 Nov 2018 20:34:27 +0000 (15:34 -0500)]
Add work item dumping support to SOS' ThreadPool command (dotnet/coreclr#20872)

Adds a -wi switch to the ThreadPool command that will enumerate all queues dumping out all found work items.

Commit migrated from https://github.com/dotnet/coreclr/commit/d793aa34a9f7f2bab8a1699456bc2047578a0a6d

5 years agoFix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)
Mike McLaughlin [Thu, 8 Nov 2018 20:29:10 +0000 (12:29 -0800)]
Fix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)

Fixes issue dotnet/coreclr#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.

Commit migrated from https://github.com/dotnet/coreclr/commit/c60869f3768f4495cb1d54179db2c41eed921d50

5 years agoFixes issue 18259
Brian Sullivan [Tue, 6 Nov 2018 02:26:10 +0000 (18:26 -0800)]
Fixes issue 18259
The problem here was that we have an indirection of a LclVar that was a pointer to an array element whose type is a struct.

The following discussion refers to the test case GitHub_18259/GitHub_18259.cs
We recorded that the struct field F1.F0 is assigned 1234u.
With the bug all subsequent reads of vr7.F0 return this value.
We miss the update to zero because we didn't add the Zero Field sequence value to the LclVar vr7

Added Test case GitHub_18259.cs
Added Test case GitHub_20838.cs

Commit migrated from https://github.com/dotnet/coreclr/commit/a35f0620007ca6f8f6c0223b7f6e0d7573a40121

5 years agoUpdate FreeBSD build timeout to 120.
Matt Galbraith [Thu, 8 Nov 2018 17:48:47 +0000 (09:48 -0800)]
Update FreeBSD build timeout to 120.

Commit migrated from https://github.com/dotnet/coreclr/commit/624767281d5dfa75c82a72d56c348cc53db844b4

5 years agoAdd azure-pipelines build and test definitions (dotnet/coreclr#20840)
Sven Boemer [Thu, 8 Nov 2018 16:50:37 +0000 (08:50 -0800)]
Add azure-pipelines build and test definitions (dotnet/coreclr#20840)

This adds an azure pipeline definition with a matrix of product and test builds, using helix to run tests. The intention is that this definition will eventually be used for both our official build and CI testing.

There is one build job for each OS/platform/arch, and one test job for each OS/platform/arch/priority/R2Rflag. The test job builds tests and then submits them to helix, passing along a number of test run modes. One helix test job will be created for each OS/platform/arch/priority/R2Rflag/helixtargetqueue/testscenario.

There is a lot of work left to be done to get this up to parity with our official builds and CI, which I've tried to call out in comments.

Commit migrated from https://github.com/dotnet/coreclr/commit/8bc5616def9074d8457f85d22b1280493ad731ad

5 years agoAdd test coverage for custom modifiers (dotnet/coreclr#20546)
Michal Strehovský [Thu, 8 Nov 2018 11:11:25 +0000 (12:11 +0100)]
Add test coverage for custom modifiers (dotnet/coreclr#20546)

Custom modifiers are only lightly tested within the CLR test codebase (both closed and open). This adds targeted tests for:

* Resolution and overriding
* Various places that should ignore them
* Reflection

Commit migrated from https://github.com/dotnet/coreclr/commit/f6e7568cc6d4901abb5e11ebc05267743a1c5205

5 years agoAdd string.GetHashCode(ROS<char>) and related APIs (dotnet/coreclr#20422)
Levi Broderick [Thu, 8 Nov 2018 07:54:11 +0000 (23:54 -0800)]
Add string.GetHashCode(ROS<char>) and related APIs (dotnet/coreclr#20422)

Commit migrated from https://github.com/dotnet/coreclr/commit/a9400301e025ff2d64a93137d11ed1eba0781ced

5 years agoFixing up the Double/Single parsing code to be correct (dotnet/coreclr#20707)
Tanner Gooding [Thu, 8 Nov 2018 04:23:49 +0000 (20:23 -0800)]
Fixing up the Double/Single parsing code to be correct (dotnet/coreclr#20707)

* Don't normalize -0.0 to 0.0 when parsing

* Updating NumberBuffer to validate the constructor inputs

* Updating NumberToDouble to just get the precision

* Don't check for non-significant zero's in NumberToDouble

* Updating Number.BigInteger to carry additional space for the worst-case scenario

* Removing some dead code from double.TryParse

* Updating NumberToDouble to use the RealParser implementation from Roslyn

* Fixing TryNumberToDouble and TryNumberToSingle to apply the appropriate sign.

* Adding a fast path for double/single parsing when we have <= 15 digits and an absolute scale <= 22

* Update NumberBuffer to also track whether any input digits past maxDigCount were non-zero

* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits

* Updating TryNumberToDouble and TryNumberToSingle to support Overflow to Infinity

* Fixing a Debug.Assert in TryParseNumber

* Fixing `DecimalNumberBufferLength` to 30

* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits

* Clarifying the NumberBufferLength comments

* Fixing TryNumberToDecimal to check the last digit in the buffer, if it exists

* Disable some CoreFX tests due to the single/double/decimal parsing fixes

* Fix TryNumberToDecimal to not modify the value of p in the assert.

Co-Authored-By: tannergooding <tagoo@outlook.com>
* Updating NumberToFloatingPointBits to use single-precision arithmetic and extended-precision multiplication where possible

* Splitting the NumberToFloatingPointBits code into a fast and slow-path method

* Ensure Roslyn is properly attributed.

* Removing the 80-bit extended precision fast path for NumberToFloatingPointBits, due to a bug

* Fixing the double and single parser to ignore case for Infinity and NaN

* Add a clarifying comment to Number.NumberToFloatingPointBits that the code has been modified from the original source.

* Removing the remaining code that was used by the 80-bit extended precision fast-path in NumberToFloatingPointBits

* Adding a missing comma to the CoreFX.issues.json

* Remove licensing "glue" and re-release the Roslyn RealParser code under the MIT license.

* Some minor cleanup to the NumberToFloatingPointBits code.

Commit migrated from https://github.com/dotnet/coreclr/commit/b30280d98e6c8e1980173a256609a0bde7f9c83d

5 years agoHandle 64-bit only intrinisc by nested classes (dotnet/coreclr#20146)
Fei Peng [Thu, 8 Nov 2018 03:15:55 +0000 (19:15 -0800)]
Handle 64-bit only intrinisc by nested classes (dotnet/coreclr#20146)

Commit migrated from https://github.com/dotnet/coreclr/commit/002603e22fe881fc501b344910740a529bed0d9c

5 years agoMove the various helper intrinsics to be implemented on the S.R.Intrinsics.Vector...
Tanner Gooding [Thu, 8 Nov 2018 03:15:37 +0000 (19:15 -0800)]
Move the various helper intrinsics to be implemented on the S.R.Intrinsics.Vector types (dotnet/coreclr#20147)

* Renaming Vector64.cs, Vector128.cs, and Vector256.cs to be Vector64_1.cs, etc

* Adding some core helper methods to the Vector64, Vector128, and Vecto256 types.

* Adding some documentation comments to the System.Runtime.Intrinsics.Vector types

* Changing `Set` to `With`

Commit migrated from https://github.com/dotnet/coreclr/commit/ce586ae4073a15f634b68a1e81ae3649b1e7ac72

5 years agoAdd unloadability support to ReliabilityFramework (dotnet/coreclr#20418)
Jan Vorlicek [Thu, 8 Nov 2018 00:08:46 +0000 (01:08 +0100)]
Add unloadability support to ReliabilityFramework (dotnet/coreclr#20418)

* Add unloadability support to ReliabilityFramework

This change adds support for unloadable AssemblyLoadContext to the GC
ReliabilityFramework. It basically mimics what was there ifdef-ed out
for AppDomains.
It allows stress testing GC when running inside of an unloadable
AssemblyLoadContext. GC has some special handling for collectible
classes and this allows testing the respective code paths.

* Make tests run on separate threads

The tests running in the assembly load context were bot using separate
threads per test and so they were not really stressing GC as much as
possible. This change fixes that.
I've also merged code for AppDomains / AssemblyLoadContext at most
places so that the differences are clearly visible.

Commit migrated from https://github.com/dotnet/coreclr/commit/ad581931c97f2b6278e21c381cf6adfc3f555134

5 years agoRemove need for full GC for unloadable stuff (dotnet/coreclr#20384)
Jan Vorlicek [Thu, 8 Nov 2018 00:08:20 +0000 (01:08 +0100)]
Remove need for full GC for unloadable stuff (dotnet/coreclr#20384)

This change removes enforcing of full GC after native LoaderAllocator is
destroyed. It turns out it was not needed. There is no regression in
running coreclr pri 1 tests inside an unloadable AssemblyLoadContext and
unloading the context after a test completes for each test.

Commit migrated from https://github.com/dotnet/coreclr/commit/b3859ce4debbeab0c0a04b8a519eded46bf67517

5 years agoFix string error handling for failed DNS lookup (dotnet/corefxdotnet/coreclr#32351)
Tomas Weinfurt [Wed, 7 Nov 2018 14:55:12 +0000 (06:55 -0800)]
Fix string error handling for failed DNS lookup (dotnet/corefxdotnet/coreclr#32351)

* better handling for dns failures

* cleanup

* add test for DNS failure exception

* relaxt test a little bit to make it more robust for future

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/88ddaa1a3de6acac9924c3f57f5eef2138c1b956

5 years agoImprove DumpAsync SOS command (dotnet/coreclr#20845)
Stephen Toub [Wed, 7 Nov 2018 20:14:00 +0000 (15:14 -0500)]
Improve DumpAsync SOS command (dotnet/coreclr#20845)

* Help DumpDelegate to dump more cases

* Improve DumpAsync command

- Add a stats summary at the beginning of the output
- Improved single-line-per-entry default behavior for increased readability
- Add option to include all tasks, not just async state machine objects
- Include state value for each async object, the state field for async state machines or the state flags for other tasks
- Support following continuation chains, rendered as "async stacks"
- Support resolving delegate names so that Task.Run and related items have the associated method name displayed
- Optional (experimental) DGML rendering of the graph
- Optionally include completed tasks, by default filtering them out
- Optionally display the fields of state machines

* Decode task state flags

* Add addr option and associated DumpAsync DML

* Fix cast warnings in checked / fprintf_s on Unix

* Remove DGML from DumpAsync

Not enough value right now, and complications in compilation on Unix given sos's current set up.  Not worth it.

Commit migrated from https://github.com/dotnet/coreclr/commit/8afc12db660da9d2218770a8309cd4ef0ccd4c3e

5 years agoDelete dead code from IdnMapping (dotnet/coreclr#20857)
Stephen Toub [Wed, 7 Nov 2018 18:55:22 +0000 (13:55 -0500)]
Delete dead code from IdnMapping (dotnet/coreclr#20857)

Commit migrated from https://github.com/dotnet/coreclr/commit/c07d491548a04456ff69b182579ae83244890af4

5 years agoMerge pull request dotnet/coreclr#20787 from CarolEidt/Arm64IntrinsicsWindows
Carol Eidt [Wed, 7 Nov 2018 15:06:40 +0000 (07:06 -0800)]
Merge pull request dotnet/coreclr#20787 from CarolEidt/Arm64IntrinsicsWindows

Add Windows support for Arm64 HW Intrinsics

Commit migrated from https://github.com/dotnet/coreclr/commit/f8ba00e0446e2a8b2f0e969aea249bf886e8ff5e

5 years agoForce using clang5.0 for Ubuntu arm32 builds (dotnet/coreclr#20825)
Bruce Forstall [Wed, 7 Nov 2018 06:35:12 +0000 (22:35 -0800)]
Force using clang5.0 for Ubuntu arm32 builds (dotnet/coreclr#20825)

* Force using clang5.0 for Ubuntu arm32 builds

* Update for code review feedback

to https://github.com/dotnet/corefx/pull/33261

Commit migrated from https://github.com/dotnet/coreclr/commit/b107aaaa591c645978f17c20f547ccd902d4cf71

5 years agoexclude freebsd symbols from publishing (dotnet/coreclr#20854)
Tomas Weinfurt [Wed, 7 Nov 2018 03:48:02 +0000 (19:48 -0800)]
exclude freebsd symbols from publishing (dotnet/coreclr#20854)

* try to use exclude on same line as Include instead of remove in separate step

* update freebsd exclude pattern

Commit migrated from https://github.com/dotnet/coreclr/commit/631407852a6332a659a6a57ede670d3e94c81efb

5 years agoPull out GetContainingObject
Andrew Au [Mon, 5 Nov 2018 19:34:49 +0000 (11:34 -0800)]
Pull out GetContainingObject

Commit migrated from https://github.com/dotnet/coreclr/commit/53e0cce55692cd568a1dce218a2089146aa8e4f8

5 years agoNITs
Andrew Au [Thu, 1 Nov 2018 23:59:55 +0000 (16:59 -0700)]
NITs

Commit migrated from https://github.com/dotnet/coreclr/commit/6b58f84275cc05ff3fbf003a70a5034fa5ecdf77

5 years agoComments in JIT helper
Andrew Au [Thu, 1 Nov 2018 19:01:54 +0000 (12:01 -0700)]
Comments in JIT helper

Commit migrated from https://github.com/dotnet/coreclr/commit/57c2f001e9853090113b6437eb77d13ee16dcb7e

5 years agoMore code review feedback
Andrew Au [Tue, 30 Oct 2018 17:50:47 +0000 (10:50 -0700)]
More code review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/f8550e4724956c6a100fe2dbd29def59a3730a85

5 years agoGetContainingObject should be a method of ICorDebugValue
Andrew Au [Tue, 30 Oct 2018 01:31:45 +0000 (18:31 -0700)]
GetContainingObject should be a method of ICorDebugValue

Commit migrated from https://github.com/dotnet/coreclr/commit/ce5b9add89809c5d2235a54ceeb62d9c59c25fed

5 years agoChange GetContainingObject API
Andrew Au [Thu, 25 Oct 2018 02:22:44 +0000 (19:22 -0700)]
Change GetContainingObject API

Commit migrated from https://github.com/dotnet/coreclr/commit/7cf7f086e17b7052eb1c34ce3b0000f900ac2ff0

5 years agoFEATURE_DATABREAKPOINT
Andrew Au [Tue, 23 Oct 2018 23:49:52 +0000 (16:49 -0700)]
FEATURE_DATABREAKPOINT

Commit migrated from https://github.com/dotnet/coreclr/commit/d742a2f03ab849a2d6a101320d3f1107a8f82c13

5 years agoCode review feedback
Andrew Au [Thu, 18 Oct 2018 01:01:55 +0000 (18:01 -0700)]
Code review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/24acddae18dedf44730f0db00a2d25dc6568eff0

5 years agoComment on jithelp.asm
Andrew Au [Mon, 15 Oct 2018 18:45:01 +0000 (11:45 -0700)]
Comment on jithelp.asm

Commit migrated from https://github.com/dotnet/coreclr/commit/908245c286c5db92ba2de2113ad11788b066754f

5 years agoEnsure BeforeGC and AfterGC events are always sent in pairs
Chuck Ries [Fri, 12 Oct 2018 23:28:36 +0000 (16:28 -0700)]
Ensure BeforeGC and AfterGC events are always sent in pairs

This latches the m_isGarbageCollectionEventsEnabled in BeforeGarbageCollection
to ensure that if we send a BeforeGC event we will send the corresponding
AfterGC event. It also ensure we will not send an AfterGC event if we did not
send the corresponding BeforeGC event.

Commit migrated from https://github.com/dotnet/coreclr/commit/72eb917675fb960c9a6fb8678fdabb686d2be75b

5 years agoStepping out of the write barrier
Andrew Au [Sat, 13 Oct 2018 01:34:12 +0000 (18:34 -0700)]
Stepping out of the write barrier

Commit migrated from https://github.com/dotnet/coreclr/commit/a08e10aa1472c4e75edab7f4fd51a0a423ec4a8c

5 years agoComplete the work for AMD64 unwind out of write barrier work
Andrew Au [Thu, 11 Oct 2018 20:53:55 +0000 (13:53 -0700)]
Complete the work for AMD64 unwind out of write barrier work

Commit migrated from https://github.com/dotnet/coreclr/commit/7fce1abec7f6b58f301840e0a9690e06cb70a039

5 years agoBringing up the AMD64 support for unwinding away from JIT WriteBarrier
Andrew Au [Wed, 10 Oct 2018 22:29:48 +0000 (15:29 -0700)]
Bringing up the AMD64 support for unwinding away from JIT WriteBarrier

Commit migrated from https://github.com/dotnet/coreclr/commit/253a48b79c0309b54796382d23b50370a46c63c9

5 years agoMake the write barrier unwinding fix works for coreclr release build
Andrew Au [Wed, 10 Oct 2018 17:16:29 +0000 (10:16 -0700)]
Make the write barrier unwinding fix works for coreclr release build

Commit migrated from https://github.com/dotnet/coreclr/commit/e6ab42f2d7183b2839e00917ca42227de281a9b2

5 years agox86 only stackwalk fix
Andrew Au [Wed, 10 Oct 2018 00:32:33 +0000 (17:32 -0700)]
x86 only stackwalk fix

Commit migrated from https://github.com/dotnet/coreclr/commit/b70d04f9112548b1718e1768cf0cb35943724946

5 years agoAllocating the DebuggerDataBreakpoint object in the right heap
Andrew Au [Thu, 20 Sep 2018 23:44:39 +0000 (16:44 -0700)]
Allocating the DebuggerDataBreakpoint object in the right heap

Commit migrated from https://github.com/dotnet/coreclr/commit/2db5af268afc606a5ce4675899af5808c6b8a459

5 years agoAvoid unused event types
Andrew Au [Tue, 28 Aug 2018 03:48:54 +0000 (20:48 -0700)]
Avoid unused event types

Commit migrated from https://github.com/dotnet/coreclr/commit/7b87997d398d0ece02f2f49e573280e5860a068a

5 years agoAvoiding triggering data breakpoint in Linux
Andrew Au [Tue, 28 Aug 2018 00:58:30 +0000 (17:58 -0700)]
Avoiding triggering data breakpoint in Linux

Commit migrated from https://github.com/dotnet/coreclr/commit/7a479cf1cd6c1a67ad6d19360b700ff198f18071

5 years agoLinux fix
Andrew Au [Tue, 28 Aug 2018 00:40:13 +0000 (17:40 -0700)]
Linux fix

Commit migrated from https://github.com/dotnet/coreclr/commit/5e324dad533a8cfe774d39c2bed2ebdc616547ac

5 years agoFix ARM compilation issue
Andrew Au [Mon, 13 Aug 2018 21:53:10 +0000 (14:53 -0700)]
Fix ARM compilation issue

Commit migrated from https://github.com/dotnet/coreclr/commit/7e94efe87f48b990e77e87f6f643cdf1ab51f951

5 years agoMore code review feedback
Andrew Au [Mon, 13 Aug 2018 18:14:18 +0000 (11:14 -0700)]
More code review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/d5bb5d5b48feba48dbfe561c093a2b38e6f0e99d

5 years agoCode review feedback
Andrew Au [Sat, 11 Aug 2018 00:10:02 +0000 (17:10 -0700)]
Code review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/a37aa3ac04cfbb6da2d39872cb0b546c10915cad

5 years agoMore comments about Debugger::SuspendComplete
Andrew Au [Fri, 10 Aug 2018 22:39:51 +0000 (15:39 -0700)]
More comments about Debugger::SuspendComplete

Commit migrated from https://github.com/dotnet/coreclr/commit/ec6d8cd42e9c1e326035ea9cabda0609d9b8f186

5 years agoUse proper macros for GetContainingObject()
Andrew Au [Fri, 10 Aug 2018 22:17:01 +0000 (15:17 -0700)]
Use proper macros for GetContainingObject()

Commit migrated from https://github.com/dotnet/coreclr/commit/31e996f77aad66847eaeb97e3e163ae0e14c4ae3

5 years agoAdding comments for thread execution mode in DebuggerRCThread::SendIPCEvent
Andrew Au [Fri, 10 Aug 2018 22:16:48 +0000 (15:16 -0700)]
Adding comments for thread execution mode in DebuggerRCThread::SendIPCEvent

Commit migrated from https://github.com/dotnet/coreclr/commit/1992834d8b4d80ab4227d0e6a7c0f9b6939d890b

5 years agoMore API comments
Andrew Au [Fri, 10 Aug 2018 17:44:36 +0000 (10:44 -0700)]
More API comments

Commit migrated from https://github.com/dotnet/coreclr/commit/2015a6266ee239267997017bebaadb025ccd223b

5 years agoFix a couple bugs in GetContainingObject
Andrew Au [Fri, 10 Aug 2018 17:27:24 +0000 (10:27 -0700)]
Fix a couple bugs in GetContainingObject

Commit migrated from https://github.com/dotnet/coreclr/commit/3c2a1f099cf2150f5b3597bd3d40e1061ef13aa7

5 years agoRename lite to isEESuspendedForGC
Andrew Au [Thu, 9 Aug 2018 18:15:18 +0000 (11:15 -0700)]
Rename lite to isEESuspendedForGC

Commit migrated from https://github.com/dotnet/coreclr/commit/0e3a4d9c419b41ddbbccc22b5d668442f2cbfd76

5 years agoICorDebug API documentation
Andrew Au [Thu, 9 Aug 2018 17:27:23 +0000 (10:27 -0700)]
ICorDebug API documentation

Commit migrated from https://github.com/dotnet/coreclr/commit/e66652e308426cc823b24e8f28dc6f775d49544a

5 years agoTurn GarbageCollection events off by default and allow VS turning them on
Andrew Au [Tue, 7 Aug 2018 23:55:21 +0000 (16:55 -0700)]
Turn GarbageCollection events off by default and allow VS turning them on

Commit migrated from https://github.com/dotnet/coreclr/commit/4143a9c607a387d16ffa724e37596501bb7e22f2

5 years agoFixing the deadlocks
Andrew Au [Mon, 6 Aug 2018 22:04:37 +0000 (15:04 -0700)]
Fixing the deadlocks

Commit migrated from https://github.com/dotnet/coreclr/commit/e467645dbefa58e144a42c3b742cee859b68d55d

5 years agoFix collision with ICorDebugProcess9 to 10
Andrew Wang [Thu, 2 Aug 2018 01:53:21 +0000 (18:53 -0700)]
Fix collision with ICorDebugProcess9 to 10

Commit migrated from https://github.com/dotnet/coreclr/commit/44f9453071131406569ea6167baf494b2ab11926

5 years agoFix a bug where a data breakpoint is accidentially deleted when the context is restor...
Andrew Au [Thu, 19 Jul 2018 20:00:49 +0000 (13:00 -0700)]
Fix a bug where a data breakpoint is accidentially deleted when the context is restored on FuncEval completion

Commit migrated from https://github.com/dotnet/coreclr/commit/e4d8496b0679f09791c4bfd889b215abef542b59

5 years agoUsing Debugger::SuspendComplete()
Andrew Au [Fri, 13 Jul 2018 18:12:24 +0000 (11:12 -0700)]
Using Debugger::SuspendComplete()

Commit migrated from https://github.com/dotnet/coreclr/commit/b9b02a4cc6cc96f6f99169ead5762b5aa2733181

5 years agoReturn better HR for failing to get managed thread context
Andrew Au [Wed, 11 Jul 2018 20:41:07 +0000 (13:41 -0700)]
Return better HR for failing to get managed thread context

Commit migrated from https://github.com/dotnet/coreclr/commit/b8e2abe84f9c4d67ff4aa1e53b3ed775c2750c42

5 years agoDo not handle the thread context for garbage collection events
Andrew Au [Wed, 11 Jul 2018 00:20:42 +0000 (17:20 -0700)]
Do not handle the thread context for garbage collection events

Commit migrated from https://github.com/dotnet/coreclr/commit/a89cd9e6654d21fc0f2a03eeaff71bcc84f69a1f

5 years agoSimple fixes
Andrew Au [Sat, 7 Jul 2018 16:33:14 +0000 (09:33 -0700)]
Simple fixes

Commit migrated from https://github.com/dotnet/coreclr/commit/eba995ab407dea951c933e8804b4982215575c1b

5 years agoEliminate dataBreakpointMask from ICorDebug
Andrew Au [Fri, 29 Jun 2018 22:54:12 +0000 (15:54 -0700)]
Eliminate dataBreakpointMask from ICorDebug

Commit migrated from https://github.com/dotnet/coreclr/commit/8fc1cb2b537845ce9f59e7cd422ba01bc2d3011c

5 years agoFixing linux build
Andrew Au [Wed, 27 Jun 2018 20:23:17 +0000 (13:23 -0700)]
Fixing linux build

Commit migrated from https://github.com/dotnet/coreclr/commit/20b1e6c0ec19c90f67fb08e1f655e58871302a2d

5 years agoGet/Set the ThreadContext natively if the debuggee is block on garbage collection...
Andrew Au [Wed, 27 Jun 2018 18:15:04 +0000 (11:15 -0700)]
Get/Set the ThreadContext natively if the debuggee is block on garbage collection events

Commit migrated from https://github.com/dotnet/coreclr/commit/59acd546c2d326e8a4ec11f078a1f0edde4dabaa

5 years agoHacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed...
Andrew Au [Tue, 26 Jun 2018 17:31:07 +0000 (10:31 -0700)]
Hacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed ThreadContext

Commit migrated from https://github.com/dotnet/coreclr/commit/f72bba95b01c790f92641b9d7d96bf23a014dd3e

5 years agoClear Canary cache unconditionally
Andrew Au [Thu, 21 Jun 2018 17:52:13 +0000 (10:52 -0700)]
Clear Canary cache unconditionally

Commit migrated from https://github.com/dotnet/coreclr/commit/68b91a76475519cfc48b60c41ce28e5c737188d4

5 years agoFix linux build
Andrew Au [Thu, 21 Jun 2018 17:45:31 +0000 (10:45 -0700)]
Fix linux build

Commit migrated from https://github.com/dotnet/coreclr/commit/c799c456e48014896fa2cf04560e59e2f15348fc

5 years agoThis should fix the non-deterministic failures
Andrew Au [Wed, 20 Jun 2018 00:06:31 +0000 (17:06 -0700)]
This should fix the non-deterministic failures

Commit migrated from https://github.com/dotnet/coreclr/commit/b9ce722ab28b5a03e87072f914a1a91522abafbd

5 years agoProperly fix the DB_IPCE_ASYNC_BREAK case
Andrew Au [Fri, 15 Jun 2018 23:18:48 +0000 (16:18 -0700)]
Properly fix the DB_IPCE_ASYNC_BREAK case

Commit migrated from https://github.com/dotnet/coreclr/commit/8a7ab918952d0cb06ef57e2cf5c255f237e49822

5 years agoRemoving unnecessary hacks
Andrew Au [Thu, 24 May 2018 22:52:32 +0000 (15:52 -0700)]
Removing unnecessary hacks

Commit migrated from https://github.com/dotnet/coreclr/commit/6a9384827f7e1059bec5e246425e46cc7f3fc140

5 years agofind_object
Maoni0 [Wed, 23 May 2018 20:52:08 +0000 (13:52 -0700)]
find_object

Commit migrated from https://github.com/dotnet/coreclr/commit/8d6583e38f4e9b00ec21666225760a0df97afaec

5 years agoCompleted the lock reversal work
Andrew Au [Thu, 24 May 2018 18:43:54 +0000 (11:43 -0700)]
Completed the lock reversal work

Commit migrated from https://github.com/dotnet/coreclr/commit/8d9206829c5ae9f2efcf70c5ee19977f0130bae8

5 years agoMaking sure issues are tracked by TODOs
Andrew Au [Tue, 22 May 2018 23:00:11 +0000 (16:00 -0700)]
Making sure issues are tracked by TODOs

Commit migrated from https://github.com/dotnet/coreclr/commit/a00a15f6ab923ef9bfee8334f241f8163359316b

5 years agoFiring the GC events within the thread suspension
Andrew Au [Tue, 22 May 2018 22:08:25 +0000 (15:08 -0700)]
Firing the GC events within the thread suspension

Commit migrated from https://github.com/dotnet/coreclr/commit/c5a69820e866fff47c9f415d872112c58f17a717

5 years agoContainerObject -> ContainingObject
Andrew Au [Thu, 17 May 2018 22:20:15 +0000 (15:20 -0700)]
ContainerObject -> ContainingObject

Commit migrated from https://github.com/dotnet/coreclr/commit/5fd5ef364611d5b608913d26f6ea003a59239594

5 years agoPass databreakpoint mask into debugger
Tom McDonald [Thu, 17 May 2018 02:20:06 +0000 (19:20 -0700)]
Pass databreakpoint mask into debugger

Commit migrated from https://github.com/dotnet/coreclr/commit/4e9171f9c0f718464e3a62614377100f3abae1c8

5 years agoImplement ICorDebugManagedCallback4::DataBreakpoint
Tom McDonald [Wed, 16 May 2018 18:31:34 +0000 (11:31 -0700)]
Implement ICorDebugManagedCallback4::DataBreakpoint

Commit migrated from https://github.com/dotnet/coreclr/commit/6fff658c9cd28e4c8c893596a34a1910099c4d70

5 years agoSaving progress
Andrew Au [Wed, 16 May 2018 00:42:29 +0000 (17:42 -0700)]
Saving progress

Commit migrated from https://github.com/dotnet/coreclr/commit/c1d7954ec6098e6f0acfde474522483a6767d1d2

5 years agoICorDebugValue -> ICorDebugObjectValue on GetContainerObject()
Andrew Au [Tue, 15 May 2018 20:54:46 +0000 (13:54 -0700)]
ICorDebugValue -> ICorDebugObjectValue on GetContainerObject()

Commit migrated from https://github.com/dotnet/coreclr/commit/731dd75e3dfe7f2ef6f857121c0eb2e460d38bce

5 years agoA dummy implementation of the GetContainerObject API
Andrew Au [Mon, 14 May 2018 22:52:55 +0000 (15:52 -0700)]
A dummy implementation of the GetContainerObject API

Commit migrated from https://github.com/dotnet/coreclr/commit/4d3bde0a60d1344590ca1643f8b9c2d9e758ae4e

5 years agoBoilerplate for adding new DBI method
Andrew Au [Mon, 14 May 2018 17:18:38 +0000 (10:18 -0700)]
Boilerplate for adding new DBI method

Commit migrated from https://github.com/dotnet/coreclr/commit/c7d6bd7cffe9f1afe9e0aebd3206aedf904d66aa

5 years agoPassing ICorDebugProcess instead of ICorDebugController
Andrew Au [Thu, 10 May 2018 23:43:54 +0000 (16:43 -0700)]
Passing ICorDebugProcess instead of ICorDebugController

Commit migrated from https://github.com/dotnet/coreclr/commit/8b9a73155033098133df0605d6e3352cd672b3ef

5 years agoThe GC events are now working, somewhat ...
Andrew Au [Thu, 10 May 2018 21:49:39 +0000 (14:49 -0700)]
The GC events are now working, somewhat ...

Commit migrated from https://github.com/dotnet/coreclr/commit/c6d26187c8ce8fc68829f262a79996f00b1e1a85

5 years agoMake sure we block after sending the events
Andrew Au [Thu, 10 May 2018 16:39:33 +0000 (09:39 -0700)]
Make sure we block after sending the events

Commit migrated from https://github.com/dotnet/coreclr/commit/e5744ae2855ee74f8f2f8020c0ef2d54bbfb746d

5 years agoSaving progress - works towards gc events
Andrew Au [Wed, 9 May 2018 16:40:47 +0000 (09:40 -0700)]
Saving progress - works towards gc events

Commit migrated from https://github.com/dotnet/coreclr/commit/1df9f792fa4a421014354063f8a63eca925c20e7

5 years agoAdd x86 data breakpoint support
Andrew Au [Fri, 4 May 2018 20:33:12 +0000 (13:33 -0700)]
Add x86 data breakpoint support

Commit migrated from https://github.com/dotnet/coreclr/commit/6a67567b0e75d396e3e088494465c6b1276b0c35

5 years agoInitial data breakpoint changes
Cagri (Charlie) Aslan [Wed, 28 Mar 2018 02:39:16 +0000 (19:39 -0700)]
Initial data breakpoint changes

temporary changes towards multiple data breakpoints

add multiple hardware bp support

Remove Complus.log

revert log.cpp changes

Commit migrated from https://github.com/dotnet/coreclr/commit/16d68bbd1fabde0af03e5086f50d2b5330afcb96

5 years agoDisable running ILAsm round-trip build on COM Tests (dotnet/coreclr#20822)
Jeremy Koritzinsky [Wed, 7 Nov 2018 00:26:40 +0000 (16:26 -0800)]
Disable running ILAsm round-trip build on COM Tests (dotnet/coreclr#20822)

* Disable running ILAsm round-trip build on COM  (requires ilasm resource embedding support).

* ILAsmTestKind -> IlrtTestKind

Commit migrated from https://github.com/dotnet/coreclr/commit/e965b1e9a6f23eafd11742cd4344eb8c1f1228cb

5 years agotry to use exclude on same line as Include instead of remove in separate step (dotnet...
Tomas Weinfurt [Tue, 6 Nov 2018 23:10:18 +0000 (15:10 -0800)]
try to use exclude on same line as Include instead of remove in separate step (dotnet/coreclr#20846)

Commit migrated from https://github.com/dotnet/coreclr/commit/73f6ece97f1ede995c0e846bd7349db2c067b543

5 years agoLoop-free GC rounding helpers with _BitScanReverse. (dotnet/coreclr#20157)
Jack Pappas [Tue, 6 Nov 2018 23:07:47 +0000 (18:07 -0500)]
Loop-free GC rounding helpers with _BitScanReverse. (dotnet/coreclr#20157)

Commit migrated from https://github.com/dotnet/coreclr/commit/2bf55bc5ca8b09dd26e32a9ee259ab22fb69806b

5 years agoRemove /RESOURCE flag documentation on ilasm. (dotnet/coreclr#20818)
Jeremy Koritzinsky [Tue, 6 Nov 2018 21:33:29 +0000 (13:33 -0800)]
Remove /RESOURCE flag documentation on ilasm. (dotnet/coreclr#20818)

* Remove /RESOURCE flag on ilasm.

* Revert "Remove /RESOURCE flag on ilasm."

This reverts commit dotnet/coreclr@7d1a9ac959a94359d2f1ef5f70ec7041804ec6f4.

* Update documentation in ilasm switches.

* Update documentation to say that the obj file has to come from a .res file.

* Remove documentation of the /RESOURCE switch. Leave the switch code-path in place for corefx.

Commit migrated from https://github.com/dotnet/coreclr/commit/8826f6f8c07c325046b78f28c57b24b201e487d2

5 years agoImprove performance of Memory<T>.Span property getter (dotnet/coreclr#20386)
Levi Broderick [Tue, 6 Nov 2018 19:02:16 +0000 (11:02 -0800)]
Improve performance of Memory<T>.Span property getter (dotnet/coreclr#20386)

- We can use our knowledge of object representation in the runtime to speed up type checks.
- We leave the ref T and the length deconstructed until the very end, optimizing register usage.
- The Length property getter is once again just a simple field accessor with no bitwise logic.

Commit migrated from https://github.com/dotnet/coreclr/commit/ef93a727984dbc5b8925a0c2d723be6580d20460

5 years agoMerge pull request dotnet/coreclr#20633 from BruceForstall/FixSPCheck
Bruce Forstall [Tue, 6 Nov 2018 18:52:40 +0000 (10:52 -0800)]
Merge pull request dotnet/coreclr#20633 from BruceForstall/FixSPCheck

Fix SP check for x64/x86, remove for arm32/arm64

Commit migrated from https://github.com/dotnet/coreclr/commit/0dc37d16d734484b75e47cb243e347f5959a29bf

5 years agoEnable SyncBlk for xplat SOS (dotnet/coreclr#20830)
Mike McLaughlin [Tue, 6 Nov 2018 18:42:53 +0000 (10:42 -0800)]
Enable SyncBlk for xplat SOS (dotnet/coreclr#20830)

Add SyncBlk to xplat SOS.

Commit migrated from https://github.com/dotnet/coreclr/commit/28b4285b4d71a9aa9b9deb40a17ee356e5ef440f

5 years agofix corefx folder (dotnet/coreclr#20828)
Sergey Andreenko [Tue, 6 Nov 2018 18:24:37 +0000 (10:24 -0800)]
fix corefx folder (dotnet/coreclr#20828)

Commit migrated from https://github.com/dotnet/coreclr/commit/39d673dc3a6840c8d76a2baa86e9dcca4b1f784c

5 years agoMerge pull request dotnet/coreclr#20834 from BruceForstall/FixArmElJob
Bruce Forstall [Tue, 6 Nov 2018 17:52:29 +0000 (09:52 -0800)]
Merge pull request dotnet/coreclr#20834 from BruceForstall/FixArmElJob

Fix corefx folder for Tizen job

Commit migrated from https://github.com/dotnet/coreclr/commit/39dc64dfb50e374162aa263514f9ad1a46061f0d

5 years agoFix corefx folder for Tizen job
Bruce Forstall [Tue, 6 Nov 2018 17:28:45 +0000 (09:28 -0800)]
Fix corefx folder for Tizen job

https://ci.dot.net/job/dotnet_coreclr/job/master/job/armel_cross_checked_tizen_innerloop_prtest/

Commit migrated from https://github.com/dotnet/coreclr/commit/05126bb441726cda23c0282e81068cd2a211f092

5 years agoAdded support for running in a sandbox on Mac (dotnet/coreclr#20735)
Oded Hanson [Tue, 6 Nov 2018 16:31:49 +0000 (18:31 +0200)]
Added support for running in a sandbox on Mac (dotnet/coreclr#20735)

* Added support for running in a sandbox on Mac

When running in a sandbox, the Mac operating system will limit access to resources, esp. the file system. Right now both Mutex and SharedMemory in the PAL are accessing the /tmp folder for which Mac does not provide the application permissions to access.

Instead, the sandbox provides the ability to share information between applications by using a shared container folder. This is done by registering the application with an Application Group ID. Using this ID, we can access the shared folder and read/write from it.

Since the .Net runtime can be loaded in multiple ways, we decided that the easiest way to let the runtime know what the application group ID is via an environment variable. Thus, if the NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID environment variable is set (on Mac), the runtime will assume we are sandboxed, and will use the value provided as the application group ID. Note that due to limitations on semaphore file lengths, we will not allow application group IDs longer than 13 characters. This gives us 10 characters for the developer ID, and 3 extra characters for the group name.

When sandbox is disabled (the environment variable is empty) then the folder for Mutex and SharedMemory will continue to be rooted in /tmp. However when the sandbox is enabled, these files will be created under /user/{loginname}/Library/Group Containers/{AppGroupId}/.

Fixes dotnet/coreclr#20473

* Made  gApplicationContainerPath a pointer so it does not get automatically deleted by the c runtime

* Made s_runtimeTempDirectoryPath and s_sharedMemoryDirectoryPath pointers so they are not automatically deleted by the c runtime

* Renamed gApplicationContainerPath to gSharedFilesPath

* Renamed NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID to DOTNET_SANDBOX_APPLICATION_GROUP_ID

* Fixed usage of VerifyStringOperation

* Replaced new with InternalNew

* Wrapped Apple specific code with #ifdef

* Added exception handling during close

* Moved VerifyStringOperation macro into SharedMemoryManager

* Moved PathCharString variable declarations before AutoCleanup is declared.

* Fixed initialization functions not to throw

* Renamed CopyPath to BuildSharedFilesPath

* Fixed misc nits

* Fixed implicit conversions from BOOL to bool

* Moved MAX_APPLICATION_GROUP_ID_LENGTH inside ifdef APPLE

* Removed PAL_IsApplicationSandboxed

Commit migrated from https://github.com/dotnet/coreclr/commit/5c566d470db2f1be687e6da5f9935960d482bf72

5 years agoFix calling convention for 3 p/invoke test cases
Bruce Forstall [Tue, 6 Nov 2018 02:41:16 +0000 (18:41 -0800)]
Fix calling convention for 3 p/invoke test cases

Commit migrated from https://github.com/dotnet/coreclr/commit/e250e6206fb7d20e436cb4d4ef0dd30da037e939

5 years agoFix SP check for x64/x86, remove for arm32/arm64
Bruce Forstall [Fri, 26 Oct 2018 07:06:38 +0000 (00:06 -0700)]
Fix SP check for x64/x86, remove for arm32/arm64

The actual checking had gotten lost between JIT32 and RyuJIT.
I fixed the "on return from function" case for x86/x64, and
the "around every call site" case for x86.

I removed the arm64 case because it's not easy to store SP to a
stack local or directly compare SP against a stack local without
a temporary. Also, for the fixed outgoing arg space ABIs (all but x86),
these checks don't seem too useful anyway, so I also removed the
arm case.

Commit migrated from https://github.com/dotnet/coreclr/commit/8cbbce04c80f03f90370231847865f620150f628

5 years agoExclude FreeBSD symbol packages from symbol uploader (Part 3) (dotnet/coreclr#20824)
Mike McLaughlin [Tue, 6 Nov 2018 00:43:03 +0000 (16:43 -0800)]
Exclude FreeBSD symbol packages from symbol uploader (Part 3) (dotnet/coreclr#20824)

Commit migrated from https://github.com/dotnet/coreclr/commit/b1b424f741af16a5df052ef11609c65d99686435

5 years agoAdd support for BSWAP intrinsic (dotnet/coreclr#18398)
Levi Broderick [Tue, 6 Nov 2018 00:06:32 +0000 (16:06 -0800)]
Add support for BSWAP intrinsic (dotnet/coreclr#18398)

With this change, the JIT will recognize a call to BinaryPrimitives.ReverseEndianness and will emit a bswap instruction.
This logic is currently only hooked up for x86 and x64; ARM still uses fallback logic.
If the JIT can't emit a bswap instruction (for example, trying to emit a 64-bit bswap in a 32-bit process), it will fall back to a software implementation, so the APIs will work across all architectures.

Commit migrated from https://github.com/dotnet/coreclr/commit/f72025c8b6d8a4fc3b4e22e2a3b6e1afeaef15ff

5 years agoAdding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)
Tanner Gooding [Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)]
Adding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)

* Adding BitIncrement, BitDecrement, CopySign, MaxMagnitude, and MinMagnitude to Math and MathF

* Adding FusedMultiplyAdd, IlogB, Log2, and ScaleB to Math and MathF

* Adding some basic PAL tests for fma, ilogb, log2, and scalbn

* Fixing a couple typos and adding clarifying comments

* Fixing the MSVC _VVV FCALL declarations

Commit migrated from https://github.com/dotnet/coreclr/commit/28417584d8e98ae7eac22e92b952778f8ea94047