summaryrefslogtreecommitdiff
path: root/src/ToolBox
AgeCommit message (Collapse)AuthorFilesLines
2019-04-03Remove ADID and ADIndex from CoreCLR (#23588)David Wrighton2-3/+1
- Remove concept of AppDomain from object api in VM - Various infrastructure around entering/leaving appdomains is removed - Add small implementation of GetAppDomain for use by DAC (to match existing behavior) - Simplify finalizer thread operations - Eliminate AppDomain::Terminate - Remove use of ADID from stresslog - Remove thread enter/leave tracking from AppDomain - Remove unused asm constants across all architectures - Re-order header inclusion order to put gcenv.h before handletable - Remove retail only sync block code involving appdomain index
2019-03-16Fix typo (#23300)Nikita Potapenko2-4/+4
.Net -> .NET
2019-03-07Fix signed compare warningsSinan Kaya9-16/+16
warning: comparison between signed and unsigned integer expressions [-Wsign-compare] conversions Update src/ToolBox/superpmi/mcs/verbdumptoc.cpp Co-Authored-By: franksinankaya <41809318+franksinankaya@users.noreply.github.com>
2019-03-05Remove dead AppDomain unload code (#23026)Steve MacLean1-4/+0
2019-03-03Cleanup more GCC warnings (#22872)Sinan Kaya2-2/+1
* Add parenthesis src/vm/sha1.cpp: In function ‘void SHA1_block(SHA1_CTX*)’: src/vm/sha1.cpp:93:29: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses] #define ROUND3(B, C, D) ((C & (B | D) | (B & D)) + sha1_round3) ^ src/vm/sha1.cpp:139:32: note: in expansion of macro ‘ROUND3’ e += ROTATE32L(a, 5) + ROUND3(b, c, d) + msg80[i]; * Move declaration into same file as one was defined Extern the other one was static * Remove hr=hr undefined assignment * Fix mutli-line comment warning * Convert multi-character literal * Remove null check for stack local variables rc/vm/invokeutil.cpp: In static member function ‘static void InvokeUtil::SetValidField(CorElementType, TypeHandle, FieldDesc*, OBJECTREF*, OBJECTREF*, TypeHandle, CLR_BOOL*)’: src/vm/invokeutil.cpp:978:29: warning: the address of ‘Throwable’ will never be NULL [-Waddress] EX_CATCH_THROWABLE(&Throwable); ^ src/inc/ex.h:1087:21: note: in definition of macro ‘EX_CATCH_THROWABLE’ if (NULL != ppThrowable) ^
2019-02-28Fix DumpAsync to understand ContinuationWrapper (#22913)Stephen Toub1-1/+20
Continuations created while the debugger is attached or certain EventSource events are enabled end up getting wrapped in an extra ContinuationWrapper object that carries some additional information. DumpAsync currently isn't unwrapping these but should. This just teaches it to look for a known field name so that it can "see through" these wrappers while following async "stacks".
2019-02-22More GNUC Fixes (#22687)Sinan Kaya3-2/+15
* Replace __sync_swap with __atomic_exchange_n __sync_swap() is a clang specific function. * Remove multiline comment * Add paranthesis around sum src/md/hotdata/../inc/streamutil.h:73:34: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses] UINT32 aligned = *totalBytes + 3 & ~3; * Define __int64 * Define windows types for tests * Remove undefined has_builtin defines and define alloca and inline for GNUC * Remove __clang__ where possible * Add implicit casting to help compiler find WCHAR* variant src/binder/assembly.cpp:294:73: error: no matching function for call to ‘SString::SString(SString)’ return (pAsmName == nullptr ? nullptr : pAsmName->GetSimpleName()); ^ In file included from src/inc/sstring.h:1082:0, from src/inc/ex.h:19, from src/inc/stgpool.h:28, from src/inc/../md/inc/metamodel.h:18, from src/inc/../md/inc/metamodelro.h:19, from src/inc/metadata.h:17, from src/binder/../vm/util.hpp:19, from src/binder/../vm/common.h:110, from src/binder/assembly.cpp:14: src/inc/sstring.inl:73:8: note: candidate: SString::SString(void*, COUNT_T) inline SString::SString(void *buffer, COUNT_T size) ^ src/inc/sstring.inl:73:8: note: candidate expects 2 arguments, 1 provided src/inc/sstring.inl:436:8: note: candidate: SString::SString(SString::tagLiteral, const WCHAR*, COUNT_T) inline SString::SString(tagLiteral dummytag, const WCHAR *literal, COUNT_T count) ^ src/inc/sstring.inl:436:8: note: candidate expects 3 arguments, 1 provided src/inc/sstring.inl:418:8: note: candidate: SString::SString(SString::tagLiteral, const WCHAR*) inline SString::SString(tagLiteral dummytag, const WCHAR *literal) ^ src/inc/sstring.inl:418:8: note: candidate expects 2 arguments, 1 provided src/inc/sstring.inl:401:8: note: candidate: SString::SString(SString::tagUTF8Literal, const UTF8*) inline SString::SString(tagUTF8Literal dummytag, const UTF8 *literal) ^ src/inc/sstring.inl:401:8: note: candidate expects 2 arguments, 1 provided src/inc/sstring.inl:382:8: note: candidate: SString::SString(SString::tagLiteral, const CHAR*) inline SString::SString(tagLiteral dummytag, const ASCII *literal) * Reorder DLLEXPORT and STDAPI GNUC wants extern "C" <attribute> format. * Abstract __FUNCSIG__ * Abstract __debugbreak() * Move common compiler options out of clang and add Wno-unused-value * Add paranthesis around || and && src/gc/gc.cpp:9084:38: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] (!chosen_power2) && (i < free_space_count)); * Set Wno-delete-non-virtual-dtor for CXX files only * Don't warn on unterminated endif labels * Suppress unused functions * Use 0x syntax rather than h syntax on GNU asm files * Correct constructor call directly src/ToolBox/superpmi/superpmi-shared/logging.cpp:301:27: required from here src/inc/clr_std/string:58:9: error: cannot call constructor ‘std::basic_string<char>::basic_string’ directly this->basic_string::basic_string(_Ptr, c_len(_Ptr)); * Suppress NULL used in arithmetic warnings
2019-02-15JIT: modify how jit determines when to update a type (#22618)Andy Ayers8-4/+77
For single-def locals, the type of a reference seen at the assignment to the local may be a more specific type than the local's declared type. If so the jit would prefer to use the assignment type to describe the local's value, as this will lead to better optimization. For instance in ``` object x = "a string"; // only assignment to x ``` the jit can optimize better if it models the type of `x` as `string`. Instead of relying on `mergeClasses` plus some jit-side screening to decide if the assignment type is a more specific type, implement a new jit interface method `isMoreSpecificType` that tries to answer this question more directly. Added a test case with type equivalence that hit asserts. Closes #22583.
2019-02-14Gnuport cleanup 3 (#22581)Sinan Kaya1-1/+1
* Reorder extern "C" and visibility statements In file included from coreclr/src/pal/inc/pal.h:70:0, coreclr/src/pal/inc/pal_mstypes.h:30:25: error: expected unqualified-id before string constant #define EXTERN_C extern "C" ^ coreclr/src/pal/inc/rt/palrt.h:216:30: note: in expansion of macro 'EXTERN_C' #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE * Need double quotes around single quotes in error statements fix error statements Can't have ' character in error statement * Abstract __declspec(noinline) Generate compiler independent macros for noinline request. * Remove unused DBG_NOINLINE_X86__RET_INLINE * Abstract __declspec(nothrow)
2019-02-09Set visibility option to hidden (#21924)Adeel Mujahid4-10/+18
2019-01-29To support container scenario, 2 HardLimit configs are added - (#22180)Maoni Stephens2-10/+11
GCHeapHardLimit - specifies a hard limit for the GC heap GCHeapHardLimitPercent - specifies a percentage of the physical memory this process is allowed to use If both are specified, GCHeapHardLimit is checked first and only when it's not specified would we check GCHeapHardLimitPercent. If neither is specified but the process is running inside a container with a memory limit specified, we will take this as the hard limit: max (20mb, 75% of the memory limit on the container) If one of the HardLimit configs is specified, and the process is running inside a container with a memory limit, the GC heap usage will not exceed the HardLimit but the total memory is still the memory limit on the container so when we calculate the memory load it's based off the container memory limit. An example, process is running inside a container with 200mb limit user also specified GCHeapHardLimit as 100mb. if 50mb out of the 100mb is used for GC, and 100mb is used for other things, the memory load is (50 + 100)/200 = 75%. Some notes on these configs - + The limit is the commit size. + This is only supported on 64-bit. + For Server GC the minimum *reserved* segment size is 16mb per heap, this is to avoid the scenario where the hard limit is small but the process can use many procs and we end up with tiny segments which doesn't make sense. We then keep track of the committed on the segments so the total does not exceed the hard limit.
2019-01-23Remove all traces of FEATURE_STACK_PROBE. (#22149)Filip Navara1-1/+0
2019-01-18SuperPMI Collect/Replay/AsmDiff tool (#21252)Jarret Shook2-3/+11
This change adds superpmi.py. The tool feature three modes, collection, replay, and asmdiffs. Collection The collection logic is very similar to the logic in our superpmi-collect test. Mostly it just allows running a script which will run managed code and it will produce a .mch which is clean to be run against. See superpmi.md for more information on specific usage and problems. Replay Replay will take an existing .mch file and run the current jit over the collection. If there is no .mch file on disk, the script will download the latest collection and run against that. AsmDiffs superpmi.md has the latest information on what platforms support asmdiffs. So far, I have an updated OSX and Windows collection that I have run against. If there are binary diffs, the tool will automatically generate base & diff folders with the asm under each one. Future work would include automatically running jit-analyze over those locations. In addition, the tool has the option to automatically run and diff jit dumps, I have found this to be useful to looking into diffs created, as re-running superpmi with different jits to collect this same information is somewhat tedious. Future work This change is in no way the end of the work needed to leverage superpmi effectively. Instead, it is a good first step. Below are some suggestions for future superpmi work: Automated collections Add pmi collection support Leverage some of the new corefx work to use superpmi shim for collections of corefx runs To be added/changed I will unset zapdisable being set by default, it creates too much data, although it is useful it should be opt in Will include example usage in superpmi.md.
2019-01-09Enable FinalizeQueue SOS command for Unix (#21876)Jan Vorlicek4-8/+26
The command is very useful and there seems to be no reason for it to not to be enabled on Unix.
2018-12-21Improve removal of dead calls to allocator helpers.Eugene Rozenfeld8-21/+39
This change improves detection of allocators with side effects. Allocators can cause side effects if the allocated object may have a finalizer. This change adds a pHasSideEffects parameter to getNewHelper JitEE interface method. It's used by the jit to check for allocator side effects instead of guessing from helper ids. Fixes #21530.
2018-12-07Fix some SOS commands after SharedDomain removal (#21401)Jan Vorlicek2-26/+58
The recent removal of SharedDomain has broken some SOS commands, like Name2EE or bpmd. There was a code that was enumerating domains and obtaining some information on them. And the shared domain pointer from DacpAppDomainStoreData was being included in the list of domains. As it is NULL now, we have failed to get the information and the domain iteration loop was exited prematurely. I have made SOS resilient to the possibility of missing shared domain. On older runtimes, the shared domain is still being reported.
2018-12-07Fix SOS thread statics display (#21426)Jan Vorlicek1-23/+0
I've noticed that when dumping an object with thread locals using SOS dumpobj command, I never get the thread locals. I've stepped through the code in SOS that displays thread statics and found that for some strange reason, it dismisses threads where DomainLocalModule doesn't have "initialized" flag set for the given class. However, when runtime accesses thread statics, it just checks "allocated" flag set for the given class in the ThreadLocalModule. Removing the extra check for DomainLocalModule fixed the problem and now thread statics are displayed properly.
2018-12-03Merge pull request #21264 from fiigii/x64onlyCarol Eidt8-51/+88
Implement 64-bit-only hardware intrinsic
2018-12-03Remove IsNeutralDomain() (#21318)Steve MacLean1-72/+21
* Remove IsNeutralDomain() * PR feedback
2018-11-29Add SuperPMI code for the new getMethodNameFromMetadataFei Peng8-51/+88
2018-11-19format spmi sources (#21094)Sergey Andreenko6-28/+36
We do not do it automatically because we do not change it often.
2018-11-20Fix search for headers and libraries via LLVM_HOME (#21084)Omair Majid1-2/+2
Commit b89e2305 (PR #18873) renamed WITH_LLDB_LIBS to LLDB_LIB_DIR and WITH_LLDB_INCLUDES to LLDB_INCLUDE_DIR. But it forgot to update the usage of these variables in some find_library and find_path calls. As a result, setting LLVM_HOME is no longer enough to compile coreclr on platforms with non-standard locations for lldb. This commit fixes that.
2018-11-19Make type comparisons more general purpose (#20940)Michal Strehovský8-1/+81
This has two parts: ## Part 1 CoreRT represents native type handles differently from CoreCLR - on CoreCLR, `RuntimeTypeHandle` is a wrapper over `RuntimeType` and RyuJIT is aware of that. On CoreRT, `RuntimeTypeHandle` wraps the native type handle, not a `RuntimeType`. The knowledge is hardcoded in importer when importing the sequence "ldtoken foo / call Type.GetTypeFromHandle" - importer just removes the call and bashes the result of ldtoken to be a reference type. CoreRT had to avoid reporting `Type.GetTypeFromHandle` as an intrinsic because of that. I'm adding another helper that lets RyuJIT avoid hardcoding that knowledge. Instead of just bashing the return type, we swap the helper call. ## Part 2 Native type handle equality checks need to go through a helper, unless the EE side says it's okay to compare native type handles directly.
2018-11-12Allow jit to examine type of initonly static ref typed fields (#20886)Andy Ayers8-1/+80
The jit incorporates the value of integer and float typed initonly static fields into its codegen, if the class initializer has already run. The jit can't incorporate the values of ref typed initonly static fields, but the types of those values can't change, and the jit can use this knowledge to enable type based optimizations like devirtualization. In particular for static fields initialized by complex class factory logic the jit can now see the end result of that logic instead of having to try and deduce the type of object that will initialize or did initialize the field. Examples of this factory pattern in include `EqualityComparer<T>.Default` and `Comparer<T>.Default`. The former is already optimized in some cases by via special-purpose modelling in the framework, jit, and runtime (see #14125) but the latter is not. With this change calls through `Comparer<T>.Default` may now also devirtualize (though won't yet inline as the devirtualization happens late). Also update the reflection code to throw an exception instead of changing the value of a fully initialized static readonly field. Closes #4108.
2018-11-08Add work item dumping support to SOS' ThreadPool command (#20872)Stephen Toub1-4/+155
Adds a -wi switch to the ThreadPool command that will enumerate all queues dumping out all found work items.
2018-11-07Improve DumpAsync SOS command (#20845)Stephen Toub6-294/+494
* 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.
2018-11-06Enable SyncBlk for xplat SOS (#20830)Mike McLaughlin4-3/+89
Add SyncBlk to xplat SOS.
2018-10-30fix detection for LLDB.h and make sos mandatory on FreeBSD (#20551)Tomas Weinfurt1-2/+10
* fix detection for LLDB.h and make sos mandatory on FreeBSD * feedback from review * feedback from review * add llvm40 as well for completness * fix OR condition
2018-10-25Add DumpDelegate sos command (#20591)Stephen Toub9-47/+259
* Add DumpDelegate sos command Finding out what method a delegate points to today with SOS is tedious. This PR adds a DumpDelegate command that simplifies it: give it the delegate address, and it outputs a line for each delegate that makes up the input delegate, where each line includes the target object, the method descriptor, and a friendly name. * Address PR feedback And fix some warnings that were showing up in CI but not locally.
2018-10-16Enable building with Clang 7 (#20417)Jan Vorlicek1-2/+3
The Clang 7 is the first version in which only the major version is used in file names and paths. So the change needed to massage the build files a bit more than what was needed for the previous versions.
2018-10-11JitEE interface additions to support object stack allocation. (#20283)Eugene Rozenfeld8-1/+118
Add two methods to JitEE interface: getHeapClassSize and canAllocateOnStack. Change JITEEVersionIdentifier.
2018-10-08Remove mentions of Rotor from codebase (#20298)Austin Wise1-24/+4
* Moving parsing from TypeNameParser ctor to a separate method. It seems a bit odd to have the constructor parsing and then use a dummy method (MakeRotorHappy) to make it look more normal. * Remove CorMarkThreadInThreadPool. It is neither referenced nor exported. * Remove reference to rotor from securitywrapper.h * Remove reference to rotor from Strike/vm.cpp. This file is only built for Windows. * Remove reference to rotor from debugreturn.h This is the only file the defines these macros, so there is no need to undef them first. * Remove unused code refering to rotor from PAL. * Remove references to Rotor from PAL. * Remove references to deleted tests from DisabledTests.txt I can't find any evidence that this file is actually used. * Remove unneeded casts. * Remove dead and misleading code from profilinghelper.cpp. FEATURE_PROFAPI_EVENT_LOGGING is always defined when PROFILING_SUPPORTED is defined. And the entire contents of profilinghelper.cpp is surrounded with "ifdef PROFILING_SUPPORTED". So all sections in "ifndef FEATURE_PROFAPI_EVENT_LOGGING" are dead. Furthermore, in coreclr this does not use the eventlog, so the macro name is misleading. * Remove dead code in excep.cpp. This entire function is surrounded with "ifndef FEATURE_PAL". * Remove refererences to rotor from safemath.h This does not appear to cause any compile problems, so nobody was using safemath.h without _ASSERTE defined. Also S_SIZE_T_WP64BUG is not used anywhere. * Remove dead code from palclr.h. I don't know why these check to see if the macro is undefined immediately after defining them. Also the comment appears to reference some unions that are no longer in this file. * Expose ISymUnmanagedWriter2 from SymWriter as required by COM. The comment talks about the C# compiler using this, however I cannot see a way for the C# compiler to get an instance of this. It is only used internally by AssemblyBuilder and not exposed otherwise. * Restore check for _ASSERTE in safemath.h. On Windows sometimes that this file is included without _ASSERTE being defined. As the existing comment suggests, it appears that SOS explicitly does not want _ASSERTE to do anything.
2018-10-07Remove mention of rotor from comments (#20297)Austin Wise1-2/+2
* Remove old reference to Rotor in documentation. All remaining references relate to rotor's role in CoreCLR history. * Remove rotor comment from enummem.cpp. I can find no evidence that the presence of g_pStressLog is conditional on FEATURE_PAL being defined. * Remove old todo, DbgDllMain looks for thread detach. * Update nativepipeline.h comment refernce to rotor. All unix-like systems except android have FEATURE_DBGIPC_TRANSPORT_DI defined, hence "most unix-like platforms". * Update some comments to not refer to Rotor. * Remove some more references to Rotor from comments. * Remove old comment. Though maybe this macro should be removed and everywhere use the & operator. It appears there are only two places that use this macro.
2018-10-05Remove context statics stuff (#20256)Jan Vorlicek2-71/+2
* Remove context statics stuff part 1 This change removes all context statics stuff from the runtime since context statics are not supported and this code was obsolete. * Remove context statics stuff from the debugger code
2018-10-05Add printing of LoaderAllocator to MethodTable in SOS (#20255)Jan Vorlicek5-26/+73
This change adds printing of LoaderAllocator to MethodTable dump in SOS for collectible types.
2018-09-28Make `structType` optional in jitEEInterface method `getFieldType`. (#20191)Sergey Andreenko2-2/+9
* Make `structType` optional in `getFieldType`. The declaration in corinfo.h says: "if 'structType' == 0, then don't bother the structure info". However, `getFieldTypeInternal ` did not check this case. * Do not bother the structure info when we do not need it from `getFieldType`.
2018-09-17Fix spmi environment reset. (#19943)Sergey Andreenko10-119/+268
* Dump spmi string environment variables with -d key. Sometimes it is not clear which environment variables are set during a replay. Add a possibility to dump all active string environment variables with "-v d" key. It is especially useful when you debug one method and can't get output that you want (for example JitDump) because altJit was set during the collection. * Dump int spmi environment variables with -d key. The same change but for int variables that need an additional parsing. * Fix environment reset in spmi. The previous changes revealed that we have a problem with environment reset. The reset was added in #13596 to support a correct replay of mch files with mc that had different env variables during the collection. It was based on Environment that was later deprecated by #13110. That caused the environment to be reset for each mc file. The fix updates env only when it is necessary and decreases the replay time of an mch file with 200000 methods from 500s to 370s. * Fix dumpHelp. Fix formating and adds note that all keys and values are case sensetive. * Delete retired packages logic. These packages were retired a long time ago and there is no value to have a special logic for them.
2018-09-07delete superpmi-shared/compileresult.cpp assert on x86. (#19841)Sergey Andreenko1-4/+2
* fix emitOutputAM for x86. * Revert "fix emitOutputAM for x86." This reverts commit fe5ade83e7c8e1ac1cb4442defdfee1d3a3be3f0. * delete an assert * add an assert about slotNum
2018-09-06Add support for collectible types to SOS (#19842)Jan Vorlicek5-52/+153
* Add support for collectible types to SOS Collectible types indirectly reference managed LoaderAllocator via pointer to native AssemblyLoaderAllocator stored in their MethodTable. GC uses this relation when scanning object graph to determine which objects are rooted and which ones are not. The gcroot command in SOS doesn't understand this relation and so it is unable to find all roots for LoaderAllocator. This change fixes it. * PR feedback Make the failure to get the collectible info non-fatal to make it compatible with older runtimes.
2018-09-05Don't build and publish libcoreclr libeventprovider libeventpipe as ↵Egor Chesakov1-1/+1
crosscomponents on ARM (#19782) * Use _install to stop copying sosdocsunix.txt to crosscomponents directory in src/ToolBox/SOS/Strike/CMakeLists.txt * Use _install for coreclrpal in src/pal/src/CMakeLists.txt * Use _install for eventprovider in src/scripts/genLttngProvider.py * Unconditionally use add_library_clr and _install for eventpipe in src/scripts/genEventPipe.py
2018-08-24Fix long spmi file names/clean few functions. (#19656)Sergey Andreenko9-206/+162
* delete extern functions * extract LoadRealJitLib func * extract getResultFileName
2018-08-23Fix superpmi-shim-counter (#19639)Sergey Andreenko3-11/+33
* fix the issue * improve counter perfomance do not rewrite output file after each method
2018-08-14Code review feedback for the alternate stack changes (PR #19309). (#19476)Mike McLaughlin1-2/+2
Fixed SOS plugin for core dumps.
2018-08-06Only register signals and create alt exception stack in coreclr. (#19309)Mike McLaughlin1-1/+0
There was a couple of places where the DAC (IsValidObject, GetAppDomainForObject) assumed that a NULL target/debuggee address would throw an exception that would be caught by try/catch. Any other invalid address is handled with a software exception throwed by the read memory functions. In general it is a better overall design not to have any of the DBI/DAC, etc. code depend on hardware exceptions being caught. On Linux the C++ runtime sometimes can't handle it. There is a slight risk that there are other places in the DAC that make the NULL address assumption but testing so far has found any. Added PAL_SetInitializeDLLFlags as a fallback to allow the PAL_InitializeDLL flags to be set for a PAL instance for the DAC where we could still register h/w signals but not the altstack switching to reduce this risk. The flags can't be build time conditional because we only build one coreclrpal.a library that all the modules used. Having a PAL_InitializeFlags function doesn't really help either because of the PAL_RegisterModule call to PAL_IntializeDLL and the LoadLibrary dance/protocol that uses it to call the loading module's DLLMain. Add PAL_SetInitializeFlags; remove flags from PAL_INITIALIZE and PAL_INITIALIZE_DLL default. Add PAL_InitializeFlags() to allowing the default to be overriden.
2018-08-01Enable ARM64 builds using release product toolsBruce Forstall1-2/+6
Remove support for specifying the toolset directory for arm64, which was used to point to an internal toolset. Building for arm64 now works just like the other platforms, e.g. invoke `build arm64`. The requirements: . Visual Studio 2017 Update 4 or later, with ARM64 toolset installed . Windows SDK 10.0.17134.0 or later . CMake 3.10 or later
2018-07-27spmi: exclude methods using a file with saved md5 hashes. (#18769)Sergey Andreenko2-5/+118
* read md5, linear search for each method. * rewrite with HANDLE * fix linux * do not waste time dumping md5 if no methods exluded
2018-07-17 Add pooling for JIT scratch memory (#18924)Jan Kotas5-23/+19
Fixes #3408
2018-07-12Add prefix to DAC's PAL exports for alpine (#18873)Mike McLaughlin2-39/+64
Added some cmake logic to create assembly include mapping files. One that maps the prefixed name (DAC_foo) to the actual name (foo) which is included in the DAC module and another that maps the actual name to the prefixed name that is included in the SOS, DBI and createdump modules. The data exports like IID_IUnknown are not prefixed and don't need to be (immutable static data). There were some C++ exports functions exported with their decorated names in the CatchHardwareExceptionHolder and NativeExceptionHolderBase classes. Created PAL_* style export functions that implements the code. Fix lldb plugin cmake file to use LLDB_H/LLDB_LIB env vars to build it.
2018-07-02SuperPMI: add ability to exclude failing method contexts from replays (#18721)Sergey Andreenko11-44/+62
* format spmi * rename mchFile to mchFileName * refactor ProcessChildStdOut * add a stub to exclude methods
2018-06-19PInvoke calli support for CoreRT (#18534)Jan Kotas8-0/+68
* Ifdef out NGen-specific PInvoke calli inlining limitation for CoreCLR This limitation seems to be a left-over from effort to eliminate JITing with fragile NGen. * Delete dead partial-trust related code * Allow PInvoke stub inlining * Add convertCalliToCall JIT/EE interface method * Update superpmi