Age | Commit message (Collapse) | Author | Files | Lines |
|
Modify conservative GC code for unaligned InlinedCallFrames
|
|
When making pinvoke calls the JITs allocate InlinedCallFrames
within their stack frames to record the location
of the managed stack frame. These InlinedCallFrames are
not necessarily 8-byte aligned. These were being used
as the topStack in src/vm/gcenv.cpp, in the method
GCToEEInterface::ScanStackRoots.
This change checks to see if a frame is an InlinedCallFrame.
If so then its GetCallSiteSP method is used to
get the real top of stack. This will always be aligned.
There were two problem before this change wwhen the
frame was misaligned (e.g. ending with 4 or c):
1. GCToEEInterface::ScanStackRoots starts at the
topStack and look at every 8-byte chunk as if it were a
pointer. But if topStack is unaligned it is not really
finding the pointers on the stack.
2. When it gets to the bottom the 8-byte access
read the first 4 bytes ok, but the last 4 bytes
go beyond mapped addresses and an access violation
results.
|
|
Improve the build throughput
|
|
Fix recursive asserts in coreclr.
|
|
|
|
Remove assert in VM break handler to prevent recursive asserts. Fixed problem where the DebugBreak wasn't terminating the app on an assert causing double assert messages. Restoring the SIGTRAP handler and returning was continuing the DebugBreak not terminating. Replaced this with an abort().
Cleanup the assert message formatting.
|
|
Fix markdown of the "Testing with CoreFX" documentation so it renders correctly on GitHub
|
|
Especially with the builds of the tests, the diag logging significantly reduces TP in the build and seems to reduce parallelism a bit too. Change this to normal.
|
|
Remove a few Unused Definitions
|
|
String.Split optimization
|
|
Remove three unused local variable definitions --
which caused warnings in the LLILC build.
|
|
Document Visual Studio 2015 support
|
|
|
|
Allow non-RIP-relative relocations in coreclr crossgen.
|
|
Fix broken link in documentation
|
|
|
|
|
|
Generate the dac table RVA using nm at build time.
|
|
|
|
|
|
Speed up package resotre of JIT Test build
|
|
Remove the temporary PAL dac table file at runtime. Replaced it with dactablerva.h file generated at build time from the libcoreclr module. nm works across Linux, OSx and FreeBSD.
|
|
Fix broken Developer Guide documentation links
|
|
|
|
- Use EmptyArray<String>.Value instead of new String[0] on .NET Core
- Return early before allocating internal array(s) when count == 1
|
|
We spend a fair amount of time (six wall clock minutes on my machine)
doing package restore for the JIT tests. This is because each project
has its own packages.config file, so during the build we call nuget
restore for each project.
There are only four unique packages.config files for all these tests, so
this change moves them to tests/src/JIT/config and updates the project
files to consume them from there.
This means during the build the `EnsureDependencies` target does not
need to invoke nuget restore as often and the build is much faster as a
result.
|
|
Merge changes from TFS
|
|
for all architectures in RyuJIT
[tfs-changeset: 1495487]
|
|
Add wrapper functions for building X509Chains
|
|
Merge changes from TFS
|
|
Merge changes from TFS
|
|
dbgshim.cpp wants to include debugshim.h but the directory that holds
this file was not on the include path when buidling with cmake. Adding
this directory in line with what we had for the razzle driven internal
TFS build.
|
|
[tfs-changeset: 1494755]
|
|
[tfs-changeset: 1494731]
|
|
Some more pal init cleanup missed in #1174
|
|
|
|
Fixed the PAL_Initialize* order problem.
|
|
|
|
Now it doesn't matter if PAL_InitializeDLL (which doesn't pass argc/argv) is called before PAL_InitializeCoreCLR or vice-versa. The exe path and command line are updated for every PAL_Initialize or PAL_InitializeCoreCLR call.
Cleaned up the pal_module initialization to get and set the module name removing the need for PAL_InitializeCoreCLR to pass the coreclr path. This required changing the process attach DllInit to be done more on demand.
The signature for PAL_InitializeCoreCLR has changed to (two parameters removed):
PALIMPORT
DWORD
PALAPI
PAL_InitializeCoreCLR(
const char *szExePath);
Fixed a problem in the ClrStack -i command where the SP/PC displayed wasn't correctly.
|
|
Refactor JIT test projects.
|
|
This change replaces the template projects used for the ported JIT tests
with a single project file per test. This refactoring is intended to
clarify exactly which tests from the legacy testbed have been ported
and what their dependencies are; this should make later reasoning about
these tests more straightforward.
This change also disables a number of innocuous warnings in the ported
tests for hygenic purposes.
|
|
|
|
Enable bpmd command (even unjitted functions work)
|
|
|
|
fix typo in objectnative.cpp comments
|
|
Preallocate JIT notification table on VM side (since ICLRDataTarget2->AllocVirtual isn't implemented under lldb) and implement WriteVirtual on debugger side to allow DAC to write entries.
Used the special set breakpoint on exception throw lldb command to catch the special exception the VM throws when some
thing is jitted. The debugger side finds the exception record by searching for the RtlpRaiseException function on the stack
when the bp is hit. It also assumes that the local variable is called ExceptionRecord.
Fix all the file path separators to use the platform independent defines.
Ifdef all the "/d" options in the supported commands because the / char isn't supported as a command line option and /d is always the DML option that isn't supported either.
Fix problem Prem run into running sos after the process stops.
|
|
Fix stack unwinding for FreeBSD.
|
|
Fix error in stack unwinding on FreeBSD as discovered by @saper.
This closes #1102 and #1113
|
|
|
|
Allow CTRLC to work when running under lldb using the SOS plugin
|