summaryrefslogtreecommitdiff
path: root/src/vm/eventtrace.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-04-03Remove ADID and ADIndex from CoreCLR (#23588)David Wrighton1-11/+5
- 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-04-03Emit event for calls to ReadyToRunInfo::GetEntryPoint. (#23662)Brian Robbins1-0/+26
2019-03-14Choose the SString constructor explicitlySinan Kaya1-1/+1
2019-03-14signedness conversionSinan Kaya1-1/+1
2019-02-28change to kick off CIVance Morrison1-1/+1
2019-02-27Update issue numberVance Morrison1-1/+1
2019-02-27Partial fix for issue 22585. Fixes symbol lookup in profilers.Vance Morrison1-16/+32
2019-02-22Store information about partial ngen in R2R images (#22680)Michal Strehovský1-1/+7
2019-01-23Remove all traces of FEATURE_STACK_PROBE. (#22149)Filip Navara1-8/+0
2018-12-28Fix warning causing error in warning as error (Windows) (#21697)Ben Adams1-1/+1
2018-12-26desktop port (#21523)Maoni Stephens1-0/+4
+alloc lock split into SOH and LOH +provisional mode to fix too many gen2 GCs triggered in low mem situation when the heap has heavy pinning fragmentation +better free list usage +premature OOM fixes +3 new configs: GCHeapAffinitizeMask, GCHighMemPercent, GCLOHThreshold (will be documented) YieldProcessor scaling factor is different on core due to the different implementation on core.
2018-12-03Remove IsNeutralDomain() (#21318)Steve MacLean1-10/+2
* Remove IsNeutralDomain() * PR feedback
2018-11-28Delete code related to LoaderOptimization and SharedDomain (#21031)Jan Kotas1-73/+29
2018-11-26Disable domain neutral loading (#21156)Jan Kotas1-1/+1
2018-11-08EventPipe support for "Parameters" (#20796)José Rivero1-4/+4
These changes enable passing "arguments" to an EventSource.
2018-10-31Remove superfluous 'const' qualifier from trivial return types (#20652)Michał Janiszewski1-1/+1
The 'const' used in this context has no meaning
2018-10-07Remove some dead remoting and context static things (#20277)Austin Wise1-1/+1
* Remove IsRemotingIntercepted methods that always return false. * Remove GetOptionalMembersAllocationSize parameters that are always false. * Remove references to context static. Remove references in comments and methodnames. * Remove RemotingVtsInfo.
2018-10-04Remove AppDomain unload (#20250)Jan Vorlicek1-25/+9
* Remove AppDomain unload This change removes all code in AppDomain that's related to AppDomain unloading which is obsolete in CoreCLR. It also removes all calls to the removed methods. In few places, I have made the change simpler by taking into account the fact that there is always just one AppDomain.
2018-09-07Add Basic Out-of-Process EventPipe Control and Heap Snapshot Capture (#19720)Brian Robbins1-99/+34
2018-08-23Enable unloading of AssemblyLoadContext (#18476)Jan Vorlicek1-11/+18
Enable assembly unloading * Allow PInvoke methods on collectible assemblies * Fix test unloadability Several hundreds of tests were using Helper class that created GCHandle, but never freed it. That prevented unloading of those tests. The change modifies the Helper class to keep the handle in a finalizable object. Several GCHandle related tests were not freeing the GCHandle they allocated, so this change adds freeing them to enable the unloading. * Add missing error messages to the resources * Fix shuffle thunk cache for unloadability * Add GetLoaderAllocator to ICLRPrivBinder
2018-05-24Typo (#18122)John Doe1-3/+3
* acquringing -> acquiring * Activ -> Active * activley -> actively * acutal -> actual * bIncomingIPAdddefed -> bIncomingIPAddRefed * adddr -> addr * readding -> reading * Addfunction -> AddFunction * additionnal -> additional * Additonal -> Additional * Additonally -> Additionally * Addresss -> Address * addtion -> addition * aded -> added * aditional -> additional * adjustements -> adjustments * Adress -> Address * afer -> after * aformentioned -> aforementioned * afte -> after * agains -> against * agaisnt -> against * aggresively -> aggressively * aggreates -> aggregates * aggregious -> egregious * aginst -> against * agregates -> aggregates * Agressive -> Aggressive * ahve -> have * ajdust -> adjust * ajust -> adjust * alement -> element * algoritm -> algorithm * alighnment -> alignment * alignmant -> alignment * constraits -> constraints * Allcator -> Allocator * alllocate -> allocate * alloacted -> allocated * allocatate -> allocate * allocatoror -> allocator * alloctaed -> allocated * alloction -> allocation * alloted -> allotted * allt he -> all the * alltogether -> altogether * alocate -> allocate * alocated -> allocated * Alocates -> Allocates * alogrithm -> algorithm * aloocate -> allocate * alot -> a lot * alwasy -> always * alwyas -> always * alwys -> always
2018-04-05Rename conflicting definitions VER_MAJOR/MINORVERSION macros (#17364)Jan Kotas1-4/+4
* Rename conflicting definitions of VER_MAJOR/MINORVERSION These macros are defined by Windows SDK. They were overload to mean CLR version that was causing interesting redefinition issues. * Delete workaround for redefined Windows SDK macros * Delete ProjectN version * Delete dead code
2018-01-31Add ETL flags for ReadyToRun (#15801)Andy Ayers1-6/+12
Add flags to track the presence of ReadyToRun codegen in an assembly and module. Add jitting flags to indicate when a method is jitted because the precompiled code was rejected, either by a profiler or by ReadyToRun dependence tracking. Together these can be used to distingish between * methods jitted because their assemblies were not precompiled * methods jitted because they were not precompiled in an otherwise precompiled assembly
2018-01-30[Local GC] FEATURE_EVENT_TRACE 4/n: Event ports for all GC-keyword events ↵Sean Gillespie1-76/+2
(#16031) * [Local GC] Event ports: GCStart and GCGenerationRange * [Local GC] Event ports: GCEnd * [Local GC] Event ports: GCHeapStats * [Local GC] Event ports: GCCreateSegment * [Local GC] Event ports: GCFreeSegment * Event ports: GCCreateConcurrentThread and GCTerminateConcurrentThread * [Local GC] Event ports: GCTriggered * [Local GC] Event ports: GCMarkWithType * [Local GC] Event ports: GCJoin_V2 * [Local GC] Event ports: GCGlobalHeapHistory_V2 * [Local GC] Event ports: GCAllocationTick_V3 * [Local GC] Event ports: GCAllocationTick_V1 * [Local GC] Event porting: PinObjectAtGCTime * one last merge conflict
2018-01-23[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)Sean Gillespie1-7/+128
* [Local GC] FEATURE_EVENT_TRACE 1/n: Add infrastructure for keeping event state within the GC and plumbing to communicate event state changes * Code review feedback: use a load without a barrier in IsEnabled and put debug-only code under TRACE_GC_EVENT_STATE * Address code review feedback: add EventPipe callback and comments * Fix the non-FEATURE_PAL build * Fix an issue where the GC fails to react to ETW callbacks to occur before the GC is initialized (e.g. on startup when an ETW session is already active) * Simplify callback locking scheme * Add a separate callback for each EventPipe provider and funnel them all through a common handler * Fix non-FEATURE_PAL build
2018-01-18Convert BulkTypeLogger Allocations From Stack to Heap (#15907)Brian Robbins1-8/+13
2017-11-17fix for il to native mapping etw events (#15038)David Mason1-3/+4
After investigation the failures look unrelated to my changes. Thanks Jan and Noah.
2017-07-24Add the runtime code versioning featurenoahfalk1-3/+3
This makes tiered compilation work properly with profiler ReJIT, and positions the runtime to integrate other versioning related features together in the future. See the newly added code-versioning design-doc in this commit for more information. Breaking changes for profilers: See code-versioning-profiler-breaking-changes.md for more details.
2017-06-23[Local GC] Remove a number of inclusions of handle table private headers ↵Sean Gillespie1-1/+1
from the VM (#12389) * Remove inclusions of private handle table headers from the VM * Add TraceRefCountedHandles to the GC handle table interface * Fix the Unix build * Move ValidatePinnedObject to marshalnative.h
2017-05-24Remove g_fEEManagedEXEStartup and g_fEEIJWStartup. (#11907)Aditya Mandaleeka1-18/+5
2017-05-12Enable Symbolic Rundown for EventPipe (#11582)Brian Robbins1-1/+13
2017-05-05Fixed issue #11383 (#11385)sergey ignatov1-2/+2
2017-04-27Turn on unwind information at informational level rather than Info level. ↵Vance Morrison1-2/+2
(#11257) This is bascically a bug fix. Quite a while ago we wanted to be able to collect stacks (which needed JIT names, and unwind information) without collecting all verbose CLR events (in particular the GC allocation Tick events). We did this in most places but missed this one.
2017-03-311. Remove disable of C4996Rahul Kumar1-21/+0
2. delete some dead code 3. Remove implementation of GetOSVersion and hardcode OS version to be 0.0.0 4. Add implementation of IsWindows8OrAbove & IsWinrtSupported (donno why this was deleted earlier) 5. remove GetVersionEx from PAL
2017-03-28[Local GC] Use standard C++ types (bool) and consistent types (void*) on the ↵Sean Gillespie1-3/+3
interface (#10463) * [Local GC] BOOL -> bool on IGCHeap * [Local GC] size_t -> void* on IGCHeap * [Local GC] Silence warnings by being explicit about BOOl -> bool conversions * Address code review feedback: FinalizeAppDomain BOOL -> bool * Fix warnings * Address code review feedback: 1) Fix a missed default parameter (FALSE) on a parameter of type bool, 2) Fix invocations of the diagnostic callbacks to use boolean literals instead of TRUE and FALSE, 3) Fix various invocations of GC interface methods in the VM to use boolean literals instead of TRUE and FALSE * Address code review feedback: fix inconsistency
2017-02-14Remove never defined FEATURE_REMOTINGdanmosemsft1-3/+0
2017-02-12Remove never defined FEATURE_FUSIONdanmosemsft1-3/+0
2017-02-11Revert "Remove always defined FEATURE_CORESYSTEM"danmosemsft1-0/+20
This reverts commit 751771a8976f909af772e35c167bd7e3ffbe44c8.
2017-02-10Remove always defined FEATURE_CORECLRdanmosemsft1-43/+0
2017-02-10Remove always defined FEATURE_CORESYSTEMdanmosemsft1-20/+0
2017-02-08Filter RefEmit modules in SendEventsForNgenMethods (#9418)Jan Kotas1-4/+1
* Filter RefEmit modules in SendEventsForNgenMethods Fixes #6427
2016-11-22This is to separate the diagnostics code out from gc.cpp (exceptMaoni01-4/+4
GC's own logging), gcee.cpp and objecthandle.cpp. The rule is GC will call the diagnostics functions at various points to communicate info and these diagnostics functions might call back into the GC if they require initimate knowledge of the GC in order to get certain info. This way gc.cpp does not need to know about details of the diagnostics components, eg, the profiling context; and the diagnostics components do not need to know details about the GC. So got rid of ProfilingScanContext in gcinterface.h and passed scanning functions to GC and handle table. Got rid of where it goes through things per heap as this is not something that diagnostics should care about, including going through stack roots per heap (which is only done in GC for scalability purposes but profiling is doing this on a single thread). This also makes it faster. Got rid of the checks for gc_low/high in ProfScanRootsHelper as this is knowledge profiling shouldn't have. And it was also incorrectly not including all interior pointer stack roots.
2016-09-12Merge pull request #7102 from vancem/ETWGCDumpFix.9-7-16Vance Morrison1-7/+6
Fix Issue dumping GC heap with ETW more than once
2016-09-08Introduce an interface separating the GC and the VM,Sean Gillespie1-10/+10
modifying the VM to utilize this interface. Introduce an interface separating the GC and the rest of the VM Remove static members of both IGCHeap and IGCHeapInternal and move the management of the singular GC heap to the VM. Rename uses of IGCHeap in the VM to GCHeapHolder, as well as other misc. renames throughout the VM and GC. Split each interface function into categories, document them, use consistent formatting across the interface Undo some accidental find/replace collateral damage Remove all ifdefs from the GC interface Deduplicate function declarations between IGCHeap and IGCHeapInternal, expose AllocAlign8 through the interface and the reference to alloc_context to repair the ARM build Paper cut: false -> nullptr Repair the ARM and x86 builds Rename GCHeapHolder -> GCHeapUtilities and address documentation feedback Rebase against master Rename gcholder.h/cpp -> gcheaputilities.h/cpp Fix an uninitialized field on alloc_context causing test failures on clang Rename the include guard for gcheaputilities.h Un-breaks SOS by making the following changes: 1) Instructs the DAC to look for IGCHeap::gcHeapType by name, instead of assuming that it exists near g_pGCHeap, 2) Eliminate all virtual calls on IGCHeap in the DAC, since we cannot dispatch on an object in another process, 3) Because of 2, expose the number of generations past the GC interface using a static variable on IGCHeap that the DAC can read directly. repair the Windows build
2016-09-07Fix issue where Type Names are not resolved if a heap dump is done twice.Vance Morrison1-7/+6
The issue is that a table that remembers which types have been dumped is only flushed when the 'Types' ETW keyword is disabled, but we only check this when and ENABLE command is executed. We should do so on DISABLE a well
2016-06-01Squashed commit of the following:David Mason1-27/+74
commit 45d11dde6acdc3def0a13302c527e3c7a662b009 Author: David Mason <davmason@microsoft.com> Date: Wed May 25 19:00:10 2016 -0700 Squashed commit of the following: commit f586c5552d8225f13b5a0476f5bdf9362ba9ee8d Author: Lee Culver <leculver@microsoft.com> Date: Wed May 25 14:17:45 2016 -0700 Fix heap dump GC type to be Induced Previously we didn't set the GC type to be "Induced" when collecting a heap dump. This would cause perfview to ignore the GC. commit 78866dfdcc15ebade0a2faeb6af9a5b7f5e0a170 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 25 13:18:41 2016 -0700 Enable LTTng events for creating a gcdump There were a handful of events that were not properly enabled on linux. This change adds enables the remaining events to allow heap dumps. commit 04d3d6c3d9a1c87e88bc1db91f717481f21874bc Author: Lee Culver <leculver@microsoft.com> Date: Tue May 24 12:57:16 2016 -0700 Fix BulkTypeEvents The buffer used for BulkTypeEvents was defined as a BYTE** instead of BYTE*. This lead to incorrectly written BulkTypeEvents. commit 8ceab5828e8101b134beb0175b1842487607636c Author: David Mason <davmason@microsoft.com> Date: Wed May 18 11:21:12 2016 -0700 Add logic for finalizer thread to check to see if a heap dump is required. commit cd64b4884d639ce90e4192975533f5e873bd1cb3 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 14:24:01 2016 -0700 Special case BulkType LTTng event The BulkType LTTng event does not have a real element size. Instead each element is variable length. This change updates the FireBulkType method to allow us to pass the correct size to LTTng. commit f8ab762106188bc124af802ec0490ef8375412b5 Merge: 77495aa f0d9ab4 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 13:49:43 2016 -0700 Merge branch 'gc-events' of github.com:leculver/coreclr into gc-events commit f0d9ab4e52c69b45d2d169983c23ab5263edb5c0 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 12:51:01 2016 -0700 Enable BulkType LTTng events on linux Emit calls to FireBulkType events on linux. This commit enables the code, but currently the wrong size is used in the etw subsystem (this function must be special cased). commit 25c682ce49f51298f011046faa50443c569943b7 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 18 12:06:05 2016 -0700 Fix multiple LTTng issues - Only emit LTTng events when LTTng is enabled. We now use the tracepoint_enabled macro to check if an event is enabled...when the version of lttng is installed that supports it. - Unsplit LTTng events. Previously we split LTTng events when they exceeded the field limit of LTTng. Now we emit those events as a raw byte array so that it matches their windows ETW counterparts byte-for-byte. - Emit any event with a struct or embedded array as a raw byte array too. The structure of memory that LTTng emits is incompatible with our ETW parsing. Changing events with struct/array fields greatly simplifies the parsing of events. commit 77495aa1b3415dcee8d4b6e8eb1d0b5cb921f821 Merge: 754596d f77577c Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:24:55 2016 -0700 Merge branch 'master' of github.com:leculver/coreclr commit 754596d9c51d07db9267148a20f81c786f719312 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:21:54 2016 -0700 Squashed commit of the following: commit f77577c1d7c552de9e75f6fb98a656a1d09bf8b2 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:04:18 2016 -0700 Properly handle arrays in LTTng Arrays were not being properly handled by the LTTng code generator. commit 390e998719e050a4e61b29bef4c8f8ecbff3423f Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 11:21:07 2016 -0700 Manually write events with structs Manually write events to LTTng which have structs embedded in them. commit 54ae7c79f3c96987504cece302513ac9215afbfe Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 09:12:45 2016 -0700 Fix issue with struct sizes Struct sizes were not properly calculated for manually saved events. commit d4e59b1b8b18822e551e585ebe006e5b66066bf8 Author: Lee Culver <leculver@microsoft.com> Date: Mon May 16 20:57:33 2016 -0700 Fix tests Tests were not being generated properly, as they skipped a parameter. This is now fixed. commit 91d68c7ee36f28b1d9de8d0242edcd078416dc80 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 11 17:41:23 2016 -0700 Remove excess fields in LTTng stream Extra fields were inserted into LTTng to calculate the size of struct pointers. Now this calculation is done natively without needing to insert the extra fields. commit 3bf826f5e36637ff5188d0205510d7236458075a Author: Lee Culver <leculver@microsoft.com> Date: Tue May 10 10:00:39 2016 -0700 Re-enable dynamic linking to fix a load issue Was getting a loader issue on startup, disabling static linking for now. commit aacb45ff675d2299df938493416f875096ec446c Author: Lee Culver <leculver@microsoft.com> Date: Thu Apr 28 20:56:01 2016 -0700 Unsplit lttng events LTTng has a limitation in that it cannot emit events with more than 9 parameters. Previously we would split these events into multiple events. However this proves to be very difficult to consume with TraceEvent. Instead we now pack the parameters into a byte array an emit the byte array + length as a single event, avoiding the need to recombine events later. commit a9a630da28d42132c2e8929909e86545fbe630c9 Author: Lee Culver <leculver@microsoft.com> Date: Wed Apr 20 13:31:33 2016 -0700 Only emit LTTng events when they are enabeld. This changes adds a check for tracepoint_enabled (when that feature is available). This change also statically compiles against the LTTng libraries (instead of dynamically) to avoid using entrypoints that may not be there if compiled against a different lttng that lacks the tracepoint_enabled entrypoint. commit f77577c1d7c552de9e75f6fb98a656a1d09bf8b2 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:04:18 2016 -0700 Properly handle arrays in LTTng Arrays were not being properly handled by the LTTng code generator. commit 390e998719e050a4e61b29bef4c8f8ecbff3423f Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 11:21:07 2016 -0700 Manually write events with structs Manually write events to LTTng which have structs embedded in them. commit 54ae7c79f3c96987504cece302513ac9215afbfe Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 09:12:45 2016 -0700 Fix issue with struct sizes Struct sizes were not properly calculated for manually saved events. commit d4e59b1b8b18822e551e585ebe006e5b66066bf8 Author: Lee Culver <leculver@microsoft.com> Date: Mon May 16 20:57:33 2016 -0700 Fix tests Tests were not being generated properly, as they skipped a parameter. This is now fixed. commit 91d68c7ee36f28b1d9de8d0242edcd078416dc80 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 11 17:41:23 2016 -0700 Remove excess fields in LTTng stream Extra fields were inserted into LTTng to calculate the size of struct pointers. Now this calculation is done natively without needing to insert the extra fields. commit 3bf826f5e36637ff5188d0205510d7236458075a Author: Lee Culver <leculver@microsoft.com> Date: Tue May 10 10:00:39 2016 -0700 Re-enable dynamic linking to fix a load issue Was getting a loader issue on startup, disabling static linking for now. commit aacb45ff675d2299df938493416f875096ec446c Author: Lee Culver <leculver@microsoft.com> Date: Thu Apr 28 20:56:01 2016 -0700 Unsplit lttng events LTTng has a limitation in that it cannot emit events with more than 9 parameters. Previously we would split these events into multiple events. However this proves to be very difficult to consume with TraceEvent. Instead we now pack the parameters into a byte array an emit the byte array + length as a single event, avoiding the need to recombine events later. commit a9a630da28d42132c2e8929909e86545fbe630c9 Author: Lee Culver <leculver@microsoft.com> Date: Wed Apr 20 13:31:33 2016 -0700 Only emit LTTng events when they are enabeld. This changes adds a check for tracepoint_enabled (when that feature is available). This change also statically compiles against the LTTng libraries (instead of dynamically) to avoid using entrypoints that may not be there if compiled against a different lttng that lacks the tracepoint_enabled entrypoint.
2016-05-14Replace ldiv with normal division for PALKshama Pawar1-6/+5
2016-04-25Fixing up FEATURE_EVENTSOURCE_XPLATDDCloud1-27/+0
2016-04-18Add support for ready to run to NGEN rundown.Brian Robbins1-5/+28
2016-02-19This Change Adds initial Support for LongFiles in the VM,Rama Krishnan Raghupathy1-8/+8
They are: 1. Wrappers for OS APIs which take or return PATHS 2. Fixing the usage of following Api's: GetEnvironmentVariableW SearchPathW GetShortPathNameW GetLongPathNameW GetModuleFileName Work remaining: Remove fixed size buffers in the VM