Matt Mitchell [Thu, 15 Oct 2015 23:26:46 +0000 (16:26 -0700)]
Fixup
Matt Mitchell [Thu, 15 Oct 2015 23:22:36 +0000 (16:22 -0700)]
Fixup
Matt Mitchell [Thu, 15 Oct 2015 23:22:15 +0000 (16:22 -0700)]
Fixup
Matt Mitchell [Thu, 15 Oct 2015 23:19:21 +0000 (16:19 -0700)]
Fixup
Matt Mitchell [Thu, 15 Oct 2015 17:30:08 +0000 (10:30 -0700)]
Fixup
Matt Mitchell [Thu, 15 Oct 2015 17:24:21 +0000 (10:24 -0700)]
Add coreclr Linux tests to CI definition
Matt Mitchell [Thu, 15 Oct 2015 14:44:53 +0000 (07:44 -0700)]
Merge pull request #1769 from mmitche/fix-type-assert
Remove assert found in internal testing
Jan Kotas [Thu, 15 Oct 2015 14:21:58 +0000 (07:21 -0700)]
Merge pull request #1772 from anurse/anurse/1771-coreconsole-wpgmptr
change coreconsole to use _get_wpgmptr
Andrew Stanton-Nurse [Thu, 15 Oct 2015 05:08:09 +0000 (22:08 -0700)]
Change CoreConsole to use _get_wpgmptr
The first value in argv only contains the string that was used to
launch the process. This means that when the CoreConsole-based
application is on the PATH, some invocations of it (most notably
those done from 'cmd') cause that value to be incomplete.
Changing to use _get_wpgmptr ensures that we always get the full
path to the executable, no matter how it is executed.
Fix #1771
Matt Mitchell [Wed, 14 Oct 2015 23:09:59 +0000 (16:09 -0700)]
Remove assert found in internal testing
This assert was introduced with the fix for #1323 as a sanity check that truly incompatible types couldn't enter this function. However, there are at least some cases where the types could be different. In the case found, REF and LONG were the types and the operand was a GT_LEA, which is handled later in the function.
This assert was introduced with the fix for #1323 as a sanity check that truly incompatible types couldn't enter this function. However, there are at least some cases where the types could be different. In the case found, REF and LONG were the types and the operand was a GT_LEA, which is handled later in the function.
Stephen Toub [Wed, 14 Oct 2015 22:24:34 +0000 (18:24 -0400)]
Merge pull request #1747 from stephentoub/string_tolowerupper_ascii
Add ASCII optimization to string.ToLower/ToUpper on Unix
stephentoub [Wed, 14 Oct 2015 15:29:11 +0000 (11:29 -0400)]
Avoid brancing in ToLower/UpperAsciiInvariant(char)
Rather than comparing the input char against 'A'/'a' and 'Z'/'z', we simply trim off all but the lower 7 bits and do a lookup into a precomputed table. This is ~3-4x faster than the branching version.
Sergiy Kuryata [Wed, 14 Oct 2015 17:47:11 +0000 (10:47 -0700)]
Merge pull request #1761 from kouvel/Instructions
Add some instructions (tests, new APIs)
Sergiy Kuryata [Wed, 14 Oct 2015 16:36:12 +0000 (09:36 -0700)]
Merge pull request #1763 from kouvel/PerfFix
Add string allocation fast path outside Windows
stephentoub [Mon, 12 Oct 2015 19:06:25 +0000 (15:06 -0400)]
Add ASCII optimization to string.ToLower/ToUpper on Unix
Aditya Mandaleeka [Wed, 14 Oct 2015 00:48:03 +0000 (17:48 -0700)]
Merge pull request #1758 from wtgodbe/failingTests
Removed working tests from failing tests file
Matt Ellis [Wed, 14 Oct 2015 00:15:36 +0000 (17:15 -0700)]
Merge pull request #1759 from ellismg/format-corefx-code
Format native CoreFX code to follow conventions
Koundinya Veluri [Tue, 13 Oct 2015 22:49:03 +0000 (15:49 -0700)]
Add string allocation fast path outside Windows
- On Linux, a microbenchmark is 140% faster with the portable fast path
- On Windows with the asm fast path, the microbenchmark was 300% faster than on Linux before, and is now 65% faster with the portable fast path
- On Windows, the portable fast path is 5% slower than the asm fast path
Jose Perez Rodriguez [Tue, 13 Oct 2015 23:12:59 +0000 (16:12 -0700)]
Merge pull request #1669 from joperezr/UseNewBclRewriter
Using DotNetCore version of BclRewriter in mscorlib build
Koundinya Veluri [Tue, 13 Oct 2015 21:04:49 +0000 (14:04 -0700)]
Merge pull request #1755 from kouvel/DisableTests
Disable a couple of tests that are not supported outside Windows
Koundinya Veluri [Tue, 13 Oct 2015 19:58:48 +0000 (12:58 -0700)]
Add some instructions (tests, new APIs)
- Instructions for running CoreCLR and PAL tests outside Windows
- Brief instructions for running CoreFX tests with a private build of CoreCLR outside Windows
- Adding new public APIs to mscorlib
Matt Ellis [Tue, 13 Oct 2015 19:15:54 +0000 (12:15 -0700)]
Run format-code.sh
Matt Ellis [Tue, 13 Oct 2015 19:11:50 +0000 (12:11 -0700)]
Add format-code.sh from CoreFX
Jose Perez Rodriguez [Fri, 2 Oct 2015 16:52:22 +0000 (09:52 -0700)]
Using DotNetCore version of BclRewriter in mscorlib build
William Godbe [Tue, 13 Oct 2015 18:28:07 +0000 (11:28 -0700)]
Removed working tests from failing tests file
Matt Mitchell [Tue, 13 Oct 2015 18:34:03 +0000 (11:34 -0700)]
Merge pull request #1756 from mmitche/add-arm-arm64-cross
Add arm64/arm cross builds to CI definition
Matt Mitchell [Tue, 13 Oct 2015 18:23:48 +0000 (11:23 -0700)]
Add missing quote
Matt Mitchell [Tue, 13 Oct 2015 17:44:58 +0000 (10:44 -0700)]
Use the correct comment style
Matt Mitchell [Tue, 13 Oct 2015 17:38:23 +0000 (10:38 -0700)]
Add arm64/arm cross builds to CI definition
Koundinya Veluri [Tue, 13 Oct 2015 17:29:10 +0000 (10:29 -0700)]
Disable a couple of tests that are not supported outside Windows
Jan Vorlicek [Tue, 13 Oct 2015 14:56:52 +0000 (16:56 +0200)]
Merge pull request #1738 from janvorli/fix-cocreate-guid
Implement CoCreateGuid using uuid_generate on Unix
Jan Vorlicek [Fri, 9 Oct 2015 18:56:43 +0000 (20:56 +0200)]
Implement CoCreateGuid using uuid_generate on Unix
We were generating GUIDs on Unix as random numbers. But that is not
correct since GUIDs have defined structure with bits having specific
meanings. For example, there are four bits that represent the type of
the GUID, which means whether the guid is randomly generated,
name based on SHA1, time based etc.
This change changes the CoCreateGuid to use the uuid_generate function
from the uuid library that should generate well-formed GUIDs on
Linux and OSX and the uuid_create on FreeBSD.
Rama krishnan Raghupathy [Tue, 13 Oct 2015 05:27:21 +0000 (22:27 -0700)]
Merge pull request #1753 from ramarag/lttng_check
Add checks for liblttng-ust-dev at build time
Rama [Mon, 12 Oct 2015 23:56:33 +0000 (16:56 -0700)]
Add checks for liblttng-ust-dev at build time
Jan Vorlicek [Mon, 12 Oct 2015 22:55:35 +0000 (00:55 +0200)]
Merge pull request #1749 from janvorli/improve-frame-destructor
Improve frame destructor performance
Koundinya Veluri [Mon, 12 Oct 2015 22:12:11 +0000 (15:12 -0700)]
Merge pull request #1746 from kouvel/PerfFix2
Add some fast paths that are missing outside Windows
Jan Vorlicek [Tue, 6 Oct 2015 00:25:36 +0000 (02:25 +0200)]
Improve frame destructor performance
This change makes the Frame destructor access thread local storage much less often,
only in rare case when the Frame was not popped before the destructor is called.
Koundinya Veluri [Fri, 9 Oct 2015 18:36:25 +0000 (11:36 -0700)]
Add some fast paths that are missing outside Windows
- Allocation fast path for arrays of object elements
- On Linux, a microbenchmark is 25% faster with the portable fast path
- On Windows with the asm fast path, the microbenchmark was 52% faster than on Linux before, and is now 22% faster with the portable fast path
- On Windows, the portable fast path is within 4% slower than the asm fast path
- Allocation fast path for objects
- On Linux, a microbenchmark is 200% faster with the portable fast path
- On Windows with the asm fast path, the microbenchmark was 325% faster than on Linux before, and is now 43% faster with the portable fast path
- On Windows, the portable fast path is within 1% slower than the asm fast path
- Skipped the Box fast path since that seems to be inlined into jitted code using the new object fast path. As a result of adding the new object fast path, boxing perf has also improved outside Windows similarly to above.
Jan Kotas [Mon, 12 Oct 2015 14:24:11 +0000 (07:24 -0700)]
Merge pull request #1739 from jasonwilliams200OK/master
code,pal: Removes unused headers
Rama krishnan Raghupathy [Mon, 12 Oct 2015 05:28:38 +0000 (22:28 -0700)]
Merge pull request #1598 from ramarag/enablelttng
Enablelttng
Rama [Fri, 9 Oct 2015 01:53:59 +0000 (18:53 -0700)]
This enables Lttng Logging for CoreClr,
The Tracepoint Providers are built as a separate shared object called libcoreclrtraceptprovider and it is
available in the same directory as libcoreclr.so
By Default the ability of Tracing will not be present
To enable the ability of Tracing, the apps need to be run like:
LD_PRELOAD=libcoreclrtraceptprovider.so ./corerun HelloWorld.exe
For now to change Xplat Event Logging mechanism add any events to:
<root>/src/vm/ClrEtwAll.man
Then regenerate files by running :
<root>/src/inc/genXplatLtnng.pl
Conflicts:
Documentation/building/linux-instructions.md
Peter Jas [Sat, 10 Oct 2015 19:05:53 +0000 (19:05 +0000)]
code,pal: Removes unused headers.
`<typeinfo>` and `<errno.h>` were unused in `seh.cpp`.
On FreeBSD, the `errno` macro was conflicting due to these
stale inclusions. The exact cause is still unknown that how
it is building on CI and only failing locally on clean FreeBSD 10.2
installation with Clang 3.5.
Fixes #1091.
Jan Kotas [Sat, 10 Oct 2015 01:46:30 +0000 (18:46 -0700)]
Merge pull request #1733 from kouvel/PerfFix
Add allocation fast path for arrays of value type elements outside Wi…
Steve Harter [Fri, 9 Oct 2015 21:11:25 +0000 (16:11 -0500)]
Merge pull request #1723 from steveharter/FixDefaultLocale
Add support for obtaining default locale in Linux and fix issue with collation not being passed to ICU
Jan Kotas [Fri, 9 Oct 2015 20:15:39 +0000 (13:15 -0700)]
Merge pull request #1737 from dotnet-bot/from-tfs
Merge changes from TFS
Steve Harter [Thu, 8 Oct 2015 22:03:53 +0000 (17:03 -0500)]
Add support for obtaining default locale in Linux and fix issue with @collation= not being passed to ICU
Koundinya Veluri [Thu, 8 Oct 2015 21:40:14 +0000 (14:40 -0700)]
Add allocation fast path for arrays of value type elements outside Windows
- A microbenchmark involving byte array allocation was about 200% faster on Windows compared to Linux
- On Windows, using the portable version of the fast path is about 5% slower than using the asm version on the microbenchmark
- On Linux, using the portable fast path improves the microbenchmark perf by 160%
- With the fast path enabled on Linux, the microbenchmark on Windows (with asm fast path) is now about 17% faster than on Linux.
Bruce Forstall [Fri, 9 Oct 2015 15:38:34 +0000 (08:38 -0700)]
Fix contracts so scanRuntime@x86chk task succeeds
[tfs-changeset: 1535699]
Stephen Toub [Fri, 9 Oct 2015 12:21:00 +0000 (08:21 -0400)]
Merge pull request #1719 from stephentoub/sb_direction
Add [Out] to a couple of StringBuilders in DllImports
Stephen Toub [Fri, 9 Oct 2015 12:18:53 +0000 (08:18 -0400)]
Merge pull request #1722 from stephentoub/casing_branches
Improve String.ToLower/ToUpper throughput on Unix
Richard L Ford [Fri, 9 Oct 2015 05:16:58 +0000 (22:16 -0700)]
Merge pull request #1721 from richardlford/fixruntimecontract
Fix incorrect runtime contract for FailedAssembly::Initialize
dotnet-bot [Fri, 9 Oct 2015 01:28:37 +0000 (18:28 -0700)]
Code changes for firing etw events when a pdb is dynamically loaded. This corresponds to the following user story: 1200238. As a profiler developer, I want to access PDB content for dynamic assemblies in the ETW event stream, so that I can show my users source for their callstack frames.
The main function in eventtrace.cpp, EmitCodeSymbols, divides the pdb stream into appropriate chunks and transmits them as events in order. There are helper functions which have been taken from the corresponding code in Desktop (Netfxdev1) to provide a dynamically loaded pdb through the profiler authored by Noah.
The test uses EventToSymbols, which is based on TraceEventParser to turn on the CodeSymbols and ModuleLoad keywords and listens for events that send out pdb chunks. It then concatenates the chunks to create the pdb on disk. The BigPdb.cs program loads a dll and pdb dynamically, which triggers the events by the runtime. Once the pdb is recreated, it is compared with the original to make sure there are no differences and if not, the test is declared as passed. The test also uses an EventSource event to transmit a unique cookie to make sure the pdb created corresponds to the process under test, in case there are mulitple instances of the test running.
[tfs-changeset: 1535373]
Jan Kotas [Fri, 9 Oct 2015 00:07:02 +0000 (17:07 -0700)]
Merge pull request #1726 from janvorli/fix-win-coreconsole
Fix Windows CoreConsole property list
Jan Vorlicek [Thu, 8 Oct 2015 23:13:14 +0000 (01:13 +0200)]
Fix Windows CoreConsole property list
The property list was broken - the keys list was missing a comma between two entries,
so they got merged into one string. And the values list was missing one value too.
stephentoub [Thu, 8 Oct 2015 21:38:06 +0000 (17:38 -0400)]
Improve string.ToLower/ToUpper perf
Our Unix implementation of changing case is currently slower than our implementation on Windows. In our ChangeCase implementation in System.Globalization.Native that uses ICU, we have a loop that reads each code point, processes it, and writes out the result. That processing involves branching into four cases based on whether we're going to upper or to lower, and whether we're using Turkish or not. By manually hoisting the invariants and loop cloning in order to remove the branches from the inner loop, we can improve the performance of this routine by ~15-20%.
Matt Mitchell [Thu, 8 Oct 2015 22:25:09 +0000 (15:25 -0700)]
Merge pull request #1706 from mmitche/update-badges
Update badges to new job locations
Matt Mitchell [Thu, 8 Oct 2015 22:20:29 +0000 (15:20 -0700)]
Merge pull request #1724 from mmitche/reenable-suse
Reenable OpenSuSE PRs
Matt Mitchell [Thu, 8 Oct 2015 22:19:39 +0000 (15:19 -0700)]
Reenable OpenSuSE PRs
Jan Vorlicek [Thu, 8 Oct 2015 20:46:22 +0000 (22:46 +0200)]
Merge pull request #1720 from janvorli/fix-osx-activation-and-exception-collision
Fix OSX hardware exception and activation collision
Lakshmi Priya [Thu, 8 Oct 2015 20:32:02 +0000 (13:32 -0700)]
Merge pull request #1689 from Priya91/palstring
Apply StackString for pal MAX_LONGPATH references.
Richard L Ford [Thu, 8 Oct 2015 20:21:14 +0000 (13:21 -0700)]
Fix incorrect runtime contract for FailedAssembly::Initialize
FailedAssembly::Initialize may call CLRException::GetHR.
CLRException::GetHR is marked GC_TRIGGERS.
FailedAssembly::Initialize has to be marked GC_TRIGGERS
as well.
Jan Kotas [Thu, 8 Oct 2015 19:48:41 +0000 (12:48 -0700)]
Merge pull request #1718 from stephentoub/stringcasing_allocations
Reduce allocations in string.ToLower/ToUpper on Unix
Jan Vorlicek [Thu, 8 Oct 2015 19:34:33 +0000 (21:34 +0200)]
Fix OSX hardware exception and activation collision
This change fixes a collision between hardware exception handling and activation
injection. Both require creating helper frame on stack and patching the target thread
context to inject invocation of a handler. When these two happened together,
they both tried to update the context and create helper frame on stack at the same
time, which lead to various issues including PAL_SEHException escaping from
the host application unhandled.
Aditya Mandaleeka [Thu, 8 Oct 2015 19:20:23 +0000 (12:20 -0700)]
Merge pull request #1683 from krixalis/master
Typos in qcall.h
stephentoub [Thu, 8 Oct 2015 18:50:28 +0000 (14:50 -0400)]
Fix additional StringBuilder directions in corefx Unix code
Mike McLaughlin [Thu, 8 Oct 2015 18:35:30 +0000 (11:35 -0700)]
Merge pull request #1711 from mikem8361/unhand
Fix unhandled exception debugger notification
Lakshmi Priya Sekar [Wed, 7 Oct 2015 18:04:19 +0000 (11:04 -0700)]
Add Null check to lib_name before getting string length.
stephentoub [Thu, 8 Oct 2015 17:14:21 +0000 (13:14 -0400)]
Add [Out] to a couple of StringBuilders in DllImports
I audited all of the StringBuilders being used in P/Invokes in mscorlib. Almost all of them were correctly annotated as to their direction of needed marshaling. Two weren't.
stephentoub [Thu, 8 Oct 2015 15:51:14 +0000 (11:51 -0400)]
Reduce allocations in string.ToLower/ToUpper on Unix
On Windows, ToLower/ToUpper calls into InternalChangeCaseString in the runtime which does two optiizations:
- a 0-length check to just return an empty string if the source is empty
- allocates the string and writes the results into it directly
In our current Unix implementation, the ChangeCase implementation doesn't do either of these, no special-casing empty strings and first allocating a char[] into which the results are written and then constructing a string from that.
This commit brings the Unix implementation more in line with the Windows one, adding the 0-length check, and writing the results directly into the result string so as to avoid the unnecessary char[] allocation and copy.
Jan Vorlicek [Thu, 8 Oct 2015 13:35:56 +0000 (15:35 +0200)]
Merge pull request #1715 from janvorli/add-unhandled-exception-trap
Add high level unhandled exception trap
Jan Vorlicek [Thu, 8 Oct 2015 12:41:56 +0000 (14:41 +0200)]
Add high level unhandled exception trap
After the recent exception handling changes, we were missing a high level
exception trap in the ExecuteAssembly. While it was fine for exceptions
comming from or through managed code, it was a problem for exceptions
happening in the ExecuteAssembly call chain before the managed code was
called.
So for example when ExecuteAssembly was called for assembly that didn't
have proper file access rights for the current user, the PAL_SEHException
leaked out of the host app (corerun) and the C++ runtime displayed
message like this:
libc++abi.dylib: terminating with uncaught exception of type PAL_SEHException
Abort trap: 6
The fix is to put back the unhandled managed exception trap that I've removed
with the recent exception handling changes, but to implement it in a slightly
different way - to contain exception holder.
This way, the call to InternalUnhandledExceptionFilter_Worker can be removed
from the UnwindManagedExceptionPass1, since this new trap would ensure it
is called for both the case when the one in UnwindManagedExceptionPass1 would
kick in and the case that this issue is fixing.
Stephen Toub [Thu, 8 Oct 2015 12:31:36 +0000 (08:31 -0400)]
Merge pull request #1688 from kouvel/LoadFromNativeSearchPathsTest
Add unit test for loading native library from host-provided native se…
Stephen Toub [Thu, 8 Oct 2015 02:37:47 +0000 (22:37 -0400)]
Merge pull request #1702 from stephentoub/marshaling_allocs
Reduce garbage generated in StringBuilder marshaling
Brian Robbins [Wed, 7 Oct 2015 22:47:02 +0000 (15:47 -0700)]
Merge pull request #1696 from brianrob/framepointers
Enable Frame Pointers for UNIX Builds
Jan Kotas [Wed, 7 Oct 2015 22:42:37 +0000 (15:42 -0700)]
Merge pull request #1693 from Kagamine/correct-word-spelling
Correct word spelling
Jan Kotas [Wed, 7 Oct 2015 22:39:51 +0000 (15:39 -0700)]
Merge pull request #1705 from kyulee1/protojit
Producing standalone Jit for testing
Mike McLaughlin [Wed, 7 Oct 2015 04:10:39 +0000 (21:10 -0700)]
Fix UnhandledException notifications. The IsDebuggerPresent check was left over from windows coreclr and prevented notifications from being sent.
Mike McLaughlin [Wed, 7 Oct 2015 21:43:48 +0000 (14:43 -0700)]
Merge pull request #1697 from mikem8361/osxbp
Fix managed breakpoints on OSX
stephentoub [Wed, 7 Oct 2015 21:43:00 +0000 (17:43 -0400)]
Address PR feedback
Remove addition of null terminator, which should already be added by ConvertToAnsi.
Matt Mitchell [Wed, 7 Oct 2015 20:13:26 +0000 (13:13 -0700)]
Merge pull request #1710 from mmitche/disable-centos-suse
Disable PRs on SuSE and CentOS until we get more nodes spun up
Matt Mitchell [Wed, 7 Oct 2015 20:11:20 +0000 (13:11 -0700)]
Disable PRs on SuSE and CentOS until we get more nodes spun up
Kyungwoo Lee [Mon, 5 Oct 2015 21:16:32 +0000 (14:16 -0700)]
Producing standalone Jit for testing
protojit.dll (Windows) / libprotojit.so (*nix) is produced in addition, which is a standalone Jit that are not attached to CoreCLR.
Note CoreCLR still embeds such Jit by default same as before to not disrupt the existing clients.
This (same) standalone Jit can be used for other testing purpose and also this can be specified as an altjit as well in CoreCLR.
Added to nuget dev package.
Eric Erhardt [Wed, 7 Oct 2015 19:15:43 +0000 (14:15 -0500)]
Merge pull request #1645 from eerhardt/Encoding
Implement Encodings on Linux
Mike McLaughlin [Wed, 7 Oct 2015 18:44:49 +0000 (11:44 -0700)]
Merge remote-tracking branch 'upstream/master' into osxbp
Matt Mitchell [Wed, 7 Oct 2015 18:20:00 +0000 (11:20 -0700)]
Update badges to new job locations
Josh Free [Wed, 7 Oct 2015 17:39:54 +0000 (10:39 -0700)]
Merge pull request #1701 from janvorli/fix-osx-hardware-exceptions-2
Add missing file to the previous hardware exceptions fix
stephentoub [Wed, 7 Oct 2015 16:48:53 +0000 (12:48 -0400)]
Reduce garbage generated in StringBuilder marshaling
When marshaling a StringBuilder In as Ansi (both done by default on Unix), we currently allocate enough native memory to hold the result. But then we use AnsiCharMarshaler.DoAnsiConversion to allocate a managed byte array and fill it with the converted results, and then we copy those results into the native memory. We can instead just call String's ConvertToAnsi directly, avoiding the extra managed array allocation and the extra memory copy.
Jan Vorlicek [Wed, 7 Oct 2015 16:45:43 +0000 (18:45 +0200)]
Add missing file to the previous hardware exceptions fix
Matt Mitchell [Wed, 7 Oct 2015 15:41:51 +0000 (08:41 -0700)]
Merge pull request #1692 from mmitche/add-netci
Initial commit of CI definition for inner loop
Matt Mitchell [Tue, 6 Oct 2015 22:56:08 +0000 (15:56 -0700)]
Initial commit of CI definition for inner loop
Eric Erhardt [Mon, 28 Sep 2015 22:41:01 +0000 (17:41 -0500)]
Implement Encodings on Linux
Our current Encodings implementation on Linux is stubbed out and
needs to be fully implemented for CoreClr.
Fix https://github.com/dotnet/corefx/issues/2774.
Jan Kotas [Wed, 7 Oct 2015 13:26:14 +0000 (06:26 -0700)]
Merge pull request #1699 from janvorli/fix-osx-hardware-exceptions
Fix OSX hardware exception handling
Jan Vorlicek [Wed, 7 Oct 2015 12:21:36 +0000 (14:21 +0200)]
Fix OSX hardware exception handling
In my recent change that has added the runtime suspension for OSX,
I have also added a fix for the unwind info of the PAL_DispatchExceptionWrapper
function. It turns out that I've made a mistake in the offset in the set_cfa_register
and it has broken hardware exception handling on OSX since the unwinder was not
able to unwind correctly through the wrapper.
It also turns out that the same wrong offset in set_cfa_register is in the
ActivationHelperWrapper.S, but in that function, the unwinding still works correctly.
I've actually verified that with both the wrong and the correct offset, the unwinder
gets the same correct RSP / RBP at the time of the exception. So I believe linked ignored
the DWARF unwind info and used compact unwind info instead that it was able to
derive correctly on its own.
Also, the allocate_stack was incorrectly placed before the set_cfa_register, which again
didn't cause a problem due to the DWARF info being ignored. The issue with this one was
that it updates the CFA, but the CFA offset is relative to RBP at that point and
RBP didn't change.
As an additional fix, there was a problem in PAL_VirtualUnwind that @sergiy-k has
spotted. The return value of the recently added unw_is_signal_frame call was
overwriting the status code returned by the unw_step that we use on OSX to
detect walking out of stack.
Koundinya Veluri [Tue, 6 Oct 2015 08:38:00 +0000 (01:38 -0700)]
Add unit test for loading native library from host-provided native search paths
Also used and added to existing macros for separator chars and removed the new members I had added to the Path class.
Related to #1680
Matt Ellis [Wed, 7 Oct 2015 06:47:20 +0000 (23:47 -0700)]
Merge pull request #1694 from janvorli/fix-exception-handling-issue
Fix issue in the new exception handling
Mike McLaughlin [Tue, 6 Oct 2015 23:44:07 +0000 (16:44 -0700)]
Suppress debug exceptions when running under native (lldb/gdb) debugger.
Mike McLaughlin [Tue, 8 Sep 2015 23:26:28 +0000 (16:26 -0700)]
Fix managed breakpoints on OSx.
Changed the OSx exception initialization to enable breakpoints/stepping.
Fix problem with faults and breakpoints in coreclr code not being forwarded to
native debugger (if being debugged).
Fix debugger shutdown where we release the transport too many times and assert in debug.
When building the register context for an exception don't save/restore the debug
registers because they cause an priviledged instruction fault.
Fixed the PAL's TRACE formatting by merging the printfcpp.cpp formatting into
silent_printf.cpp. "%p" wasn't being formatted correctly in a PAL TRACE statement.
The executable heap zone wasn't being set because the process heap
is used instead of creating a new heap.
Brian Robbins [Tue, 6 Oct 2015 23:36:54 +0000 (16:36 -0700)]
Compile with frame pointers on UNIX builds.
あまみや ゆうこ [Tue, 6 Oct 2015 23:00:15 +0000 (07:00 +0800)]
correct word spelling
Jan Kotas [Tue, 6 Oct 2015 22:40:08 +0000 (15:40 -0700)]
Merge pull request #1666 from jasonwilliams200OK/master
cmake: cleanup FreeBSD system include path