Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Change-Id: I48446ce7c8771a4c75149512bb7d8a8cb3fae8e5
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
|
|
This commit implements wrappers that allow interception transitions
from managed to external unmanaged code (CIL -> native) and back
(native -> CIL). This allows enable/disable ASan during transitions.
Due to this, we sanitize only external code, which allows us to
achieve acceptable performance.
Change-Id: I53ecdc14d28f7210cd9e7f5bd4db0c8ef5ed81fc
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
|
|
|
|
|
|
|
|
|
|
This reverts commit a5339ba00e94b8cd0c85b67fa66944eabc4ec7ad.
|
|
|
|
This fix is to update usages of SetupGcCoverage() under
FEATURE_PREJIT aligned to the signature change in #25261.
|
|
pCurrentContextPointers in REGDISPLAY can contain NULLs so we need to use
ebp value from pCurrentContext. This patch contains following changes:
- GetRegdisplayFP returns ebp from pCurrentContext
- GetRegdisplayFP is used instead of *GetEbpLocation()
- Set##reg##Location also updates register value in pCurrentContext
|
|
- Profile information is collected by ibc logger.
Hower it is not used and saved into profile file.
- The patch disables IBC logger which is enabled by default.
- It disables IBC logger only with ibclogger.h file.
IBCLOGGER_ENABLED definition is only used in ibclogger files.
|
|
- Even if DACCESS_COMPILE or CROSSGEN_COMPILE is defined,
coreclr can be built without IBCLOGGER_ENABLED definition.
|
|
|
|
Fix watson bucketing/broken triage dumps
The DAC EnumMemoryRegions needs to include some missing code version
manager memory.
|
|
(#26423)
|
|
As adding EnC methods happens on the Debugger Thread, there's no managed Thread object from which to obtain the cached StackingAllocator. Instead, just use a function-local StackingAllocator.
|
|
* Account for quoted values in provider filter string
|
|
* Clean up diagnosticserver socket/pipe on shutdown
* Refactor dbg transport pipe cleanup to be registered as signal handler from the vm side
* cleanup dead code
* Remove more dead code and fix windows builds
* Moving some ifdefs around
|
|
need to read hardlimit configs from env vars as well as runtimeconfig.json
|
|
appropriate CRT functions for x64 Windows, as is already done for all other platforms/targets (#25763)
* Fixing Buffer::BlockCopy to just call the CRT memmove for x64 Windows, as is already done for all other platforms/targets
* Fixing up the x64 CrtHelpers.asm to just forward to the CRT implementations for JIT_MemSet and JIT_MemCpy
* Keep unix using memcpy and clarify that Windows uses memmove for full framework compat.
|
|
This typo was in #24989 so would be a new regression in 3.0.
In an x86 build, it causes us to not get the cache size correct,
leading us to use a smaller default cache size and do more GCs.
Tested with GCPerfSim and this PR reduces TotalNumberGCs by 33% using an x86 build.
|
|
|
|
* Arm64 ICorDebugRegisterSet float support
* Arm64 ICorDebugRegisterSet2 implementation
* Add arm64 VLT_REG_FP case
* Arm64 add funceval GetRegister SetRegister support
|
|
* Remove duplicate definition
* Fix conversion error
* 1ui64 doesn't exist on GCC
|
|
|
|
* Fix GS cookie check on ARM in functions with stackalloc
The GC cookie check was failing during GC stack walking on ARM for frames
of functions using stackalloc and pinvoke. The InlinedCallFrame stores
only the SP after the stackalloc adjustment and unwinder needs R9
that contains SP before the stackalloc to be able to unwind the frame
to get caller SP. The caller SP is used as a base for getting the GS
cookie address. We were incorrectly setting the R9 in the CONTEXT
to the same value as SP and so the unwinding was getting an incorrect
caller SP.
The fix is to store R9 in the InlinedCallFrame for ARM.
|
|
* System.GC.HeapHardLimit and .HeapHardLimitPercent in runtimeconfig.json
This adds two new configuration options, "System.GC.HeapHardLimit" and
"System.GC.HeapHardLimitPercent" to runtimeconfig.json. These behave the
same as COMPlus_GCHeapHardLimit and COMPlus_GCHeapHardLimitPercent.
* Add cast
* Dummy change to trigger tests rerun
|
|
* Fix handling of NullReferenceException in VSD on ARM
There was a problem with handling NullReferenceExceptionHandling stemming
from virtual dispatch stub on ARM Linux. While the primary exception was
handled correctly, if the exception was rethrown or another exception
was thrown from the catch handler, it was reported as unhandled even
though there was a proper handler.
The issue was caused by exception unwinding that was unable to unwind past
the frame of the virtual dispatch stub in this case. Such stub is generated
at runtime and there is no unwind info for it.
The fix is to explicitly check for the stub frame and skip it during first
and second pass of exception handling.
|
|
Don't spin forever in EventListener when listening for EventPipe data
|
|
* Add property HardLimitBytes to GCMemoryInfo
This adds a new property HardLimitBytes.
Unlike TotalAvailableMemoryBytes,
this will reflect an explicitly set COMPLUS_GCHeapHardLimit.
It will also reflect the fraction of a container's size that we use,
where TotalAvailableMemoryBytes is the total container size.
Normally, though, it is equal to TotalAvailableMemoryBytes.
Fix #38821
* Remove HardLimitBytes; have TotalAvailableMemoryBytes take on its behavior
* Fix typos
* Separate total_physical_mem and heap_hard_limit
so we can compute highMemoryLoadThresholdBytes and memoryLoadBytes
* Do more work in gc.cpp instead of Gc.cs
* Consistently end names in "Bytes"
|
|
|
|
parameters (#25558)
* Fix instantiation stub maker for case where no register is used by function parameters
|
|
|
|
Add single step emulation for arm64 Linux
Add a copy and rework armsinglestepper to arm64singlestepper
Add arm64 emulation of all armv8 user space instructions which read or write PC.
- ADR, ADRP
- Branch instructions: B, BL, B.cond, BR, BLR, RET
- LDR (literal)
* Add FEATURE_EMULATE_SINGLESTEP
* Enable for ARM64 linux
* Debugging fixes
Fix IsSSFlagEnabled bug
Fix opcode type
Fix code buffer asserts
Fix CBZ typo
Fix BitExtract
Fix m_targetPc
Minimize written instructions
Fix comments
Fix Bypass address truncation
Fix false assert
Add additional logging
Use %lx to log addresses
Remove stray LOG
Remove stray assert
|
|
* Write all rundown events to the buffer manager to prevent the write from blocking while holding the CodeManager lock
* * Incorporate PR feedback
* changed to one suspend rather than suspend->resume->suspend
* added some comments
* update comments
|
|
* Don't load multiple profilers
* add comment
* Move check to LoadProfiler, and eliminate race condition between attach profiler and startup profiled
|
|
(#25261)
- SOS changes are in https://github.com/dotnet/diagnostics/pull/369
- Fixes https://github.com/dotnet/coreclr/issues/17646
|
|
Prep-work for using mainstream IL linker
|
|
|
|
ReadyToRunInfo::MethodIterator (#25518)
|
|
terminates (#25491)
|
|
* Add RundownRequested switch to EventPipe IPC protocol
* Fix linux build
* make the rundownRequested field a bool
* some renaming
* Make a new command that has an option for disabling rundown instead of breaking change
* code review feedback
|
|
|
|
* Fix GCStress issue on x86 and Arm32
When we write one of the new gc stress instruction, such as INTERRUPT_INSTR_PROTECT_FIRST_RET
we might be writing it in the epilog region on x86 or ARM as a direct call can be the last
instruction before an epilog. (This isn't allowed on x64)
This fix expands the set of instructions we are allowed by IsMarkerInstr() toinclude these
newly added gc stress instructions.
added comment to GetGcMarkerExceptionCode
Fix DAC build
* Code review feedback
* Additional code review chnages
|
|
Fixes #25475
|
|
* Fix for #25252
* revert to special casing 8-alignement for double[] in GC helpers for x86
|
|
event (#25401)
|
|
|
|
* Add ICorDebugDelegateObjectValue interfaces
* Expose appropriate HR (CORDBG_E_UNSUPPORTED_DELEGATE)
* Partially DACize DelegateObject
* Add DacDbi method for delegate inspection
|