Age | Commit message (Collapse) | Author |
|
* W^X support
This change is the last part of enabling the W^X support. It adds the
actual executable allocator that handles all double mapped memory
allocations and creating the writeable mappings.
The platform specific functionality is placed in a new minipal that is
going to be a basis for future removal of Windows APIs usage from the
native runtime.
The last state of the change was tested on all the platforms that we
support using coreclr pri 1 tests with both the W^X enabled and disabled
using the COMPlus_EnableWriteXorExecute variable.
The debugger changes were tested using the managed debugger testing
suite on Windows x64, x86 and on Apple Silicon so far. Further testing
on other platforms is in progress.
* Replace LeafLock in UMEntryThunkFreeList by a new lock
* Also allocate LoaderHeapFreeBlock from regular heap.
* Set the W^X default to disabled
|
|
|
|
* Add Objective-C interop support.
* Include handling of HNDTYPE_REFCOUNTED when FEATURE_OBJCMARSHAL is defined (#47534)
* Allow overriding of Objective-C message send P/Invokes (#47721)
* Add new flag to MethodTable for types with ObjectiveCTrackedTypeAttribute.
Discover attribute during type load and set bit.
Update EagerFinalizer callout to query bit.
* Add testing for API
* Bridge API for propagating managed exception to native.
* Update GCEE interface to support GCServer scenario for Objective-C.
The new callbacks now fire when before the GC scans handles and is
non-concurrent.
* Comment added for ExceptionTracker non-NULL condition.
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
|
|
Add an NSAutoreleasePool to all managed create threads including the Main and Finalizer.
This expands the current support where support was only added to ThreadPool threads.
New feature switch was created and the ThreadPool one was removed.
- System.Threading.Thread.EnableAutoreleasePool
Updated AutoReleaseTest for the new scenarios.
|
|
* Initial support for Hot Reload on ARM
* AssemblyExtensionsTest fix for ARM
|
|
(#47639)
* Implementing mscordbi on mono to support icordebug
* Fix eval, fix step and cancel step, remove suspend status on mscordbi
* Using log from coreclr as mscordbi does
* Missing files
* Removing eglib from implementation
* Compiling on Mac
* Compiling and Working on windows.
Changing what @lambdageek suggested about mono_atomic_inc_i32
* Generating libmscordbi on mac
* Fix socket on mac
* Counting references, deleting objects, removing unecessary properties,
formating with cland-format, renaming properties to follow the used
pattern.
* Checking error when get reply from debugger
* Fix format, reuse regmeta from coreclr and try to fix compilation on
windows
* Dont build when target is android or ios or wasm
* Fix error unused variable
* Fixing error: 'CFUserNotificationDisplayAlert' is unavailable: not
available on macCatalyst
* Fix compilation error on Linux
* Fix function not found in maccatalyst
Fix warning as error of macro redefinition
* Dont compile mscordbi on maccatalyst
* Fix compilation on linux
* Fix compilation on android, ios and browser
* Fix compilation on linux
* Fix cross compiling
* Fix compilation x86 windows
* Fix x86 compilation
* Fix compilation on windows
* Fix cmake error
* Fix cmake
* Fix arm64 mac
* Fix windows compilation
* Fix memory leak
* Returning E_NOTIMPL where it was possible and it's not implemented as
suggested by @cshung
* Fix what @cshung
* Use only one ref count
* Adding ex_try everywhere that we could have an allocation failure.
* Implementing get class
* Apply suggestions from code review
Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
* Fix what @noahfalk suggested in his review.
* Fixing what was suggested by @viniciusjarina
* Fix what was suggested by @viniciusjarina
* Changing what @noahfalk suggested
* Accept more than 1 stepper per thread
* Changing what was suggested by @noahfalk
* Using CORDB_ADDRESS to return addresses from debugged process
* Fix eval
* Update src/mono/mono/mini/debugger-agent.c
Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Using 1:1 with runtime for cordbtype and cordbclass
* Rnaming methods as suggested by @lambdageek
* Update src/mono/dbi/cordb-process.h
Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Update CMakeLists.txt
* Fix arm64 compilation
* Fix arm64 compilation
* Fix error cmake
* fix arm64 compilation
* Fix arm64 compilation
* Fix arm64 compilation
* Fix arm64 compilation
* Revert "Fix arm64 compilation"
This reverts commit 25f24bc7ac66966fe59805e54e4009c909608b2c.
* Revert "Fix arm64 compilation"
This reverts commit a8f0318881d7b3e6b5a69b1b56c17478a71fdb4f.
* Revert "fix arm64 compilation"
This reverts commit b5de06dcf00bf296f2c8f4b47aa2492afbd73acd.
* Revert "Fix error cmake"
This reverts commit 2aae4636499d073ca5aa6fb9319d84875be6e08e.
* Revert "Fix arm64 compilation"
This reverts commit ae5f701589c3bd8ca04b9d9369af2b285a5d9bd0.
* Revert "Fix arm64 compilation"
This reverts commit 94d957c7416a900c9e90dec53900a104572ea6a1.
* Removing arm64 compilation
* Remove arm64 compilation
Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
|
|
On Linux/MacOS only enabled ENC for the debug/ee and vm directories and that
through some the EE's data structure's vtables between the runtime and DAC.
|
|
Enable Hot Reload API on Linux
Only define EnC_SUPPORTED for vm/ee on xplat. Doesn't enable the ENC ICorDebug API.
Enable hotreload api tests on Linux/MacOS. API not implemented on arm/arm64
Remove all the ENC_DELTA_HACK code. Remove more ENC_DELTA_HACK code from ilasm
|
|
|
|
|
|
|
|
|
|
* Prefer ucontext.h over sys/ucontext.h
* Cleanup redundant _XOPEN_SOURCE definitions
* Remove unused makefile from PAL tests
|
|
(#45354)
Break out build of eventpipe library into vm/eventing/eventpipe
(both for C++ as well as C library).
Introduce ability to build CoreClr with C++ or C version of
EventPipe/DiagnosticServer library. Beneficial during transition
to have both library useable, C++ library is still default,
but new cmake feature FEATURE_PERFTRACING_C_LIB can be defined
in order to build and use C library instead of C++ version.
Due to restrictions around standard headers in CoreClr,
moved out C library IPC PAL into debug_pal
(where C++ library has its IPC PAL). This unfortunately came
with some additional needed changes since library had dependencies
against runtime, so needed to make PAL sources independent of
majority of EventPipe library. Added same feature as for
EventPipe/DiagnosticServer library, possible to build debug_pal
with C or C++ IPC PAL sources.
Complemented a couple of CoreClr types with NoThrow methods
so they could be used in shim containers without need for
try/catch, CQuickArray::PushNoThrow, SHash::AddNoThrow.
Missing strtoull on non Windows, add PAL_strtoull
into PAL (PAL already included UTF16 version of the same functionality).
|
|
* CMake changes.
* use unix_osx.
|
|
|
|
builds (#41126)
This change is part of a larger effort to enable crossgen2 to perform general purpose cross compilation from any architecture to any other architecture. This portion of the change is to begin generating cross targeting jits with a consistent naming scheme with a minimal amount of code change.
The practical output of this change is replacement of the current practice of building protojit/protononjit/etc. with `clrjit_<targetos>_<target_arch>_<host_arch>` binaries.
In addition I've defined a couple of new subsets so that this can be less impactful to the inner dev loop.
clr.alljits, which will build all of the jits.
clr.jit, which will build only non-cross targeting jits.
clr.runtime which has been enhanced to not trigger the alljits build.
Current restrictions of the change:
1. This change does not support 32bit to 64bit compilation. I've built a larger change that includes the necessary work for that, but the changes are more disruptive, and I would prefer to scope this work to make it reviewable.
2. This work builds different compilers for the unix targetting and windows targetting compilers. This is due to the different ABIs that the architectures support. Upon investigation, I've determined that the actual product differences in these cases is small for ARM and ARM64. In the future, once we have testing, I believe it would be reasonable to unify the generated compiler binaries.
3. These changes do not build an armel targeting compiler for all scenarios, but it does build one with the current naming scheme as was done before. Again, like in condition 2, I believe we can make a single arm targetting compiler that will work.
4. These changes include changes to crossgen2 to use the new compiler binaries. However, there is no expanded testing to cover test the newly available cross compilation capabilities. That will appear in follow-on work.
|
|
* MacOS managed debugging perf fix
This PR adds PAL_OpenProcessMemory, PAL_ReadProcessMemory and PAL_CloseProcessMemory that
encapsulate the remote read memory functions for both MacOS and Linux.
The DBI code that reads memory using the runtime IPC messages to use these new functions
and fallback to the IPC message if the open fails.
On MacOS, this won't have any affect on VSCode performance until vsdbg/vsdbgui are signed
with the "com.apple.security.cs.debugger" entitlement.
Sample entitlements.plist file:
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
```
Example of locally signing with entitlement command:
codesign -s <local-cert> --entitlements entitlements.plist
Fix FreeBSD build. Remove FEATURE_DATATARGET4 for macOS so managed debugging uses faster OOP unwind for HelpMethodFrames
|
|
|
|
Also deleted some dead code
|
|
|
|
1. Add code so the runtime can read profile data from a text file and then
make this data available to the jit, so it will be easier to test the jit's
behavior when profile data is available.
2. Add code so the runtime can create profile text files by telling the jit
to insert probes into jitted code that write into a persistent buffer, which
is saved to text at shutdown. This is mainly intended to make creation of the
sideloaded profile data files easier, since their internal structure must
exactly match artifacts from jitted methods.
3. Add a mode where jit-instrumented Tier0 code can feed counts into Tier1
jitting. This is an experiment to see what benefit, if any, might accrue from
having profile data available for Tier1 jitting.
External format is text so it can be edited by hand or checked into the repo
alongside tests. Binary format would be more compact but opaque.
In all cases the jit internally sees a profile buffer identical to the one it
sees with IBC; the only minor changes in the jit are to initialize the count
field of each probe entry to zero and to only emit the entry helper call for
prejitted IBC.
Only root methods are instrumented, and only root method blocks are given
profile weights. Broadening to handle inlinees is future work, facilitated by
the new capabilites added here.
|
|
* Delete HCORMODULE
* Delete FEATURE_CORRUPTING_EXCEPTIONS
Ability to catch corrupting exceptions was disabled in .NET Core since early days for security reasons. This is still disabled after this change, but achieved in much simpler way without the full corrupting exceptions machinery.
* Delete unused bSecurityCheck argument of GetComIPFromObjectRef
|
|
https://github.com/dotnet/runtime/pull/33716 set TARGET_DARWIN for iOS too but most of the logic is really OSX-specific.
Unset TARGET_DARWIN for iOS and rename the rest of the occurrences to TARGET_OSX.
|
|
Fixes #33627
|
|
Add support to runtime and jit to allow switching from unoptimized to
optimized code for a method while the method has active stack frames.
Details in the included document.
|
|
* Implement RuntimeHelpers.AllocateTypeAssociatedMemory().
* Add tests for RuntimeHelpers.AllocateTypeAssociatedMemory().
* Implement ComWrappers API.
* Add tests for ComWrappers API.
* Add a FEATURE_COMWRAPPERS feature flag.
|
|
|
|
Allow to use profiler attach/detach feature because it seems to work on
other platforms (macOS in particular).
Also, remove unused DATA_PROFAPI_ATTACH_DETACH definition.
Fixes #32093
|
|
* Use common CLR_CMAKE_* variables in more places
* Remove obsolete paragraph from README
|
|
* Rename identifiers to be more consistent
This patch was a machine generated search and replace of
identifiers. The replacement was done in the order listed
for the path specified.
A regex was used to find the identifiers.
s/(^|[^A-CE-Za-z0-9_])${find}($|[^A-Za-z0-9_])
The 'D' character was specifically allowed a s a prefix
to catch add_definitions(-D${find}).
The patch also reverts all managed code changes after replacement.
_ARM_ -> HOST_ARM in src/coreclr
_ARM64_ -> HOST_ARM64 in src/coreclr
_AMD64_ -> HOST_AMD64 in src/coreclr
_X86_ -> HOST_X86 in src/coreclr
_HOST_UNIX_ -> HOST_UNIX in src/coreclr
_HOST_AMD64_ -> HOST_AMD64 in src/coreclr
_HOST_ARM64_ -> HOST_ARM64 in src/coreclr
_HOST_ARM_ -> HOST_ARM in src/coreclr
_HOST_X86_ -> HOST_X86 in src/coreclr
DBG_TARGET_AMD64 -> TARGET_AMD64 in src/coreclr
DBG_TARGET_ARM64 -> TARGET_ARM64 in src/coreclr
DBG_TARGET_ARM -> TARGET_ARM in src/coreclr
DBG_TARGET_X86 -> TARGET_X86 in src/coreclr
_TARGET_AMD64_ -> TARGET_AMD64 in src/coreclr
_TARGET_ARM_ -> TARGET_ARM in src/coreclr
_TARGET_ARM64_ -> TARGET_ARM64 in src/coreclr
_TARGET_X86_ -> TARGET_X86 in src/coreclr
_TARGET_ARMARCH_ -> TARGET_ARMARCH in src/coreclr
_TARGET_XARCH_ -> TARGET_XARCH in src/coreclr
_HOST_64BIT_ -> HOST_64BIT in src/coreclr
BIT64 -> HOST_64BIT in src/coreclr
_TARGET_64BIT_ -> TARGET_64BIT in src/coreclr
DBG_TARGET_64BIT -> TARGET_64BIT in src/coreclr
HOST_IS_WINDOWS_OS -> HOST_WINDOWS in src/coreclr
PLATFORM_UNIX -> HOST_UNIX in src/coreclr/*.cmake
PLATFORM_WINDOWS -> HOST_WINDOWS in src/coreclr/*.cmake
_TARGET_MAC64 -> TARGET_OSX in src/coreclr
FEATURE_PAL -> TARGET_UNIX in src/coreclr
_TARGET_UNIX_ -> TARGET_UNIX in src/coreclr
_TARGET_WINDOWS_ -> TARGET_WINDOWS in src/coreclr
PLATFORM_UNIX -> TARGET_UNIX in src/coreclr
PLATFORM_WINDOWS -> TARGET_WINDOWS in src/coreclr
* Miscellaneous manual fixes to fix compilation
Remove unused defines
Remove BIT32
Remove DBG_TARGET_AMD64_UNIX
Remove DBG_TARGET_ARM64_UNIX
Remove DBG_TARGET_ARM_UNIX
Remove DBG_TARGET_32BIT
Fixes for HOST_<arch> rename
Move TARGET_<Arch> and TARGET_<bit>
Move from clrdefinitions.cmake
to configurecompiler.cmake so it is used globally.
More jit.h
* Whitespace by clang-format
|
|
The /proc/mem filesystem is only available on Linux hosts. Revise #ifdef
to use FEATURE_PROC_MEM to enable disable the use of /proc/mem on the
debug target shim. Enable only when HOST and target are Unix, but not
Darwin.
|
|
* Refactor CMake system to allow cross OS DAC compile
Add CLR_CMAKE_HOST_OS
Add rules to determine which cross OS combinations are valid
Make add_definitions depend on TARGET OS properties. Wherever reasonable
make C++ defines depend on runtime target rather than host.
|
|
The term platform was ambiguous. Migrate to using common terminology for
cross compilation.
Host is the platfrom which will execute the code
Target is the platform which will be debugged or for which code will be generated.
In most cases HOST == TARGET. The exceptions are the cross component crossgen
tools and the future cross DAC.
|
|
* Implement instantiating and unboxing through portable stublinker code
- Handle only the cases with register to register moves
- Shares abi processing logic with delegate shuffle thunk creation
- Architecture specific logic is relatively simple
- Do not permit use of HELPERREG in computed instantiating stubs
- Fix GetArgLoc such that it works on all architectures and OS combinations
Add a JIT stress test case for testing all of the various combinations
- Use the same calling convention test architecture that was used as part of tail call work
Rename secure delegates to wrapper delegates
- Secure delegates are no longer a feature of the runtime
- But the wrapper delegate lives on as a workaround for a weird detail of the ARM32 abi
|
|
Commit migrated from https://github.com/dotnet/coreclr/commit/6d06f54a6b2bf0ddcc69d12cfc11e09ddb6d4ec0
|
|
Commit migrated from https://github.com/dotnet/coreclr/commit/989e7c7050d848f0aace9d1a79a777e033a4d3dd
|
|
* Changes to set gen0 bricks always. This reduces the time spent in find_first_object when finding the start of objects for marking interior pointers.
* Revert "Changes to set gen0 bricks always. This reduces the time spent in find_first_object when finding the start of objects for marking interior pointers."
This reverts commit dotnet/coreclr@9d53ff910ceb5482c67350a88e6687b8f94d5634.
* Initial check point for manually managed card bundles on x64 Windows.
* Small optimization in JIT_ByRefWriteBarrier - instead of memory access, use lea from a register to restore destination address.
* Fix issue with arm64 - forgot to push my local change.
* Address code review change request - make arm64 Windows write barrier trash only x12 and x15, but not x16 for consistency with Linux.
Commit migrated from https://github.com/dotnet/coreclr/commit/c3432f0f43b5669413b3a9c80f5a74736e5b0558
|
|
(dotnet/coreclr#26980)
* Try to remove the CLR_CMAKE_COMPILER weirdness.
* Cleanup phase 1.
Fixes CMake's incremental build, but makes MSBuild complain about it's incremental build possibly not working.
* Drive dac and crossgen-specific defines through target properties.
* First pass of consolidation of singularly nested CMakeLists.txt files.
* Convert metadata libraries to not use leaf folders for dac/runtime/crossgen/dbi variations.
* Clean up some of the non-arm assembly file handling.
* Encapsulate arm/arm64 manual preprocessing and compilation of assembly files into a cmake function preprocess_compile_asm.
* Fix typo.
* Convert usages of add_precompiled_header to target_precompile_header everywhere except the jit.
* Clean up/remove some leaf CMake files that are just simple target creation (where most of the work was done in the parent).
* Remove unused CMakeLists file and folder.
* Clean up coreclr/CMakeLists.txt
* Remove conditions based on CMake version (since we're unifying on CMake 3.14)
* Convert final usages of add_precompiled_header to target_precompile_header and remove add_precompiled_header.
* Handle the AsmConstants.inc inclusion in cee_wks by marking it a header file instead of making a custom target.
* Move from deprecated FindPythonInterp module to FindPython module.
* Remove unused jitpch.cpp
* Fix typo.
* Have get_compile_definitions correctly split out generator expressions for multiple-valued generator expressions.
* preprocess_def_file -> preprocess_file and make it work xplat.
* Fix test build.
* Fix typo in flag.
* Fix resource building on non-windows.
* Fix other linker flag typo I missed.
* Add missing eventing_headers dependency.
* Fix multivalued generator expression.
* Use CMake 3.x features to significantly simplify toolchain.cmake.
* Remove references to LLDB from gen-buildsys-* (these aren't needed since SOS moved out of the repo).
* Remove debugging line
* Check check_pie_supported
* Clean up link flags.
* Fix copy-paste typo
* Cleanup. Change some conditions in configurecompiler to check for MSVC specifically, not Windows.
* Restore the llldb include and library path searching.
* Restore asmconstants_inc custom target.
Commit migrated from https://github.com/dotnet/coreclr/commit/59c7b7e84ab3a74d3939abd0c0f973d2bb9e8a70
|
|
(dotnet/coreclr#26740)
Jumpstamps were used to version methods before we had the tiered compilation versioning mechanism. Jumpstamps had some negatives, that it was only supported on x86 and x64, that it required padding methods (bloated on disk IL code size), and that it required a runtime suspension to write the jumpstamps. By consolidating to one code versioning scheme we can delete a lot of code and support all architectures that tiered compilation does for rejit.
Commit migrated from https://github.com/dotnet/coreclr/commit/7fd79859530d6d6a05ae3b69adf2e0ca8a746bab
|
|
* Delete more unused methods from PAL
* Delete PAL_EntryPoint
* Delete always defined FEATURE_PAL_SXS and related code
Commit migrated from https://github.com/dotnet/coreclr/commit/59002f56b5a2a4e13d4adee9f21942855c0955d3
|
|
* Use FEATURE_EH_FUNCLETS in jit as WIN64EXCEPTIONS is used in VM.
It will help as to add this as global defenition and replace WIN64EXCEPTIONS with it.
* Make FEATURE_EH_FUNCLETS available for VM.
Note that we do not add this define to jit\linuxnonjit for x86,
because it needs FEATURE_PAL to be defined on x86 Linux and
FEATURE_PAL is not defined when we are running linux altjit on Windows.
* Rename WIN64EXCEPTIONS to FEATURE_EH_FUNCLETS.
* Delete WIN64EXCEPTIONS.
That was confusing because it was defined on Linux x64/arm64 and on Windows arm32.
* Define DFEATURE_EH_FUNCLETS later in the file, with a condition.
* Fix two typos in comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/84d4ed44b5c7f1b3db6e9ae3c71e8e1bb585bbaf
|
|
* Enable MHR support on OSX
* Move JIT_WriteBarrier that is modified at runtime to a dynamically
allocated memory instead of making a page in libcoreclr.dylib RWX.
* Update PAL to add MEM_JIT flag for allocations and reservations of
executable memory.
* Update native runtime in EH and stack unwinding areas so that it can
unwind from the write barrier copy. That code has no unwind info, so
without special handling, runtime would not be able to unwind from
it.
* Fix JIT_Stelem_Ref calls to JIT_WriteBarrier
Commit migrated from https://github.com/dotnet/coreclr/commit/0e64ecf712da163d0f091c76705e400e55a2b87a
|
|
Avoids confusion with _WIN64 being defined even on Unix
Commit migrated from https://github.com/dotnet/coreclr/commit/ab2f9caaf35c96d029b96aa171ee65d04253cf7c
|
|
ARM32 out of proc unwind support
Removed the old dwarf unwind info decoding and use libunwind
for both dwarf and arm exidx.
Commit migrated from https://github.com/dotnet/coreclr/commit/e8f08ff064b406d0ab0f36217abe6328ea61c081
|
|
arm64 out of proc unwind for DAC
Removed FEATURE_DATATARGET4 for arm64
Added SP check to createdump's native unwind
loop to make it more robust.
Commit migrated from https://github.com/dotnet/coreclr/commit/0d5a6395fce4a3bdfb249645bad9724cd120b50f
|
|
FEATURE_DATATARGET4 enables the portable out of
process stack unwind
Commit migrated from https://github.com/dotnet/coreclr/commit/0b8c84535b267ee6a99ba5059146ba5b93dd6c0a
|
|
This reverts commit dotnet/coreclr@7a970842ebd88686851af53edee689a3149737bf.
Commit migrated from https://github.com/dotnet/coreclr/commit/1991a9ac761e8684ada594bc5a9fef0817c98602
|
|
* Enable MHR support on OSX
* Move JIT_WriteBarrier that is modified at runtime to a dynamically
allocated memory instead of making a page in libcoreclr.dylib RWX.
* Update PAL to add MEM_JIT flag for allocations and reservations of
executable memory.
* Update native runtime in EH and stack unwinding areas so that it can
unwind from the write barrier copy. That code has no unwind info, so
without special handling, runtime would not be able to unwind from
it.
Commit migrated from https://github.com/dotnet/coreclr/commit/7a970842ebd88686851af53edee689a3149737bf
|
|
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
Commit migrated from https://github.com/dotnet/coreclr/commit/613f9f233abde4159a85aa8130b7fcb57dc7a4ef
|