summaryrefslogtreecommitdiff
path: root/src/vm/eventpipeconfiguration.cpp
AgeCommit message (Collapse)AuthorFilesLines
2018-11-08EventPipe support for "Parameters" (#20796)José Rivero1-3/+9
These changes enable passing "arguments" to an EventSource.
2018-10-25Add EventPipe Config File Option MultiFileSec (#20548)Brian Robbins1-2/+2
2018-07-02Dispatch Runtime Events to EventListener (#18649)Brian Robbins1-2/+2
2018-06-04Flow EventSources to EventPipe on Windows (#18217)Brian Robbins1-6/+6
2018-03-30Only allow the rundown thread to write events during rundown to avoid ↵Brian Robbins1-1/+5
corruption of the trace file. (#17358)
2018-02-02Event Pipe File V3 (#16107)Adam Sitnik1-20/+7
* write missing information to the event pipe file (pointer size to make it work fo x86) * define where the events start, not only where they end * include process Id in the event pipe file, bump the version so old consumers get clear error message * write the missing EndObject tag to close the header * include expected CPU sampling rate in the event pipe header file * include keywords in V3 of EventPipe metadata, fixes #11934 * remove forward references * entry object comes after the header and ends after it's data, before the event block objects * introduce event block * fix the GC contracts * generate metadata ids * end the file with null reference tag * getting it work * 4 byte alignment of serialized event data * Revert "include keywords in V3 of EventPipe metadata, fixes #11934" This reverts commit 98ef2f588e271f928fd051e96da526dc1e0f017c. * remove event Id and event version from metadata buffer (it was duplicated with native code) * increase the block size to be the same as buffer size * Write the last event block to the file after disabling the event pipe, right after last events * include the sife in itself * the native part was supposed to not duplicate the event id and version, not manged * ensure 4 byte alignment * build metadata when it's not provided, so payload is never empty (no need to serialize length) * this todo is no longer valid * don't align everything, just the content of event block as suggested by @vancem * improvements after code review * update TraceEvent dependency, make the test verify new feature * InterlockedIncrement(Int32) is not available for non-Windows OSes * code improvements after Skype code review from @jorive
2018-01-29EventPipe: Don't Generate and Emit Stacks on Rundown (#16083)Brian Robbins1-0/+1
2018-01-25Create the concept of EventPipeSession and refactor EventPipe to use it. ↵Brian Robbins1-218/+80
Also expose COMPlus configuration variables to support session configuration and output file path. (#16018)
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-24/+39
* Revert "Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)" This reverts commit 302005ca8ae14eade37ddf4ac6e900617c1c166a. * Fix ARM build break * Use more explicit references to resolve build failures * Fix compat with python3 * Disable FeaturePerfTracing on Windows as it is not ready * Disable test for incomplete functionality * Fix test diabled patterns * Add license header * Use keyword types for managed code * Add message prefix * More precisly condition generation of eventing sources * Remove erroneously added changes
2017-12-21Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)Victor "Nate" Graf1-39/+24
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-24/+39
* [squashed] most work complete to enable EventPipe on Windows * Eventpipe now builds on Windows * Ensure evevntpipe is intialized on Windows * Resolve the location of python from build.cmd * Ensure eventing files are generated when needed * moving linkage declaration to cmake * create new event from constructor * enable FEATURE_EVENT_TRACE and FEATURE_PERF_TRACE everywhere * [WIP] checkpoint in fixing contarct errors * add another possible python location * Fix double delete bug in EventPipeConfiguration destructor * Fix typo in function name * Revert changes to .gitgnore * bump to netstandard1.6 in preperation for new version of TraceEvent * Revert changes to groovy files * revert changes to perf-prep scripts * add common.h and use nothrow * Fix issue which was causing double delete of configprovider * Add new test utilizing TraceEvent * Remove accidentally added local directory reference * Add comment to explain the addition of misc/tracepointprovider.cpp * Add back sys.exit(0) and refactor * Change conditional to be more direct * Better handle NULL config * Initialize m_deleteDefered * Eliminate obsolete field * Fix spelling error * Fix nits * Make smaple progiler timing functions easier to read * Move projects back to netstandard1.4 * Incomplete improvements to EventPipeTrace test * Add event integrity checks to test * Clean up some left over code * Add EventSource based test * Remove unused PAL tests on Windows * Fix Linux build breaks * Minor changes to CMake files * Remove //HACK for hack that was previously removed * Fix formatting and negate a #ifdef * Add conditional to ensure PERFTRACING is not enabled without EVENT_TRACE * Take lock on EventPipeProvider and EventPipeConfiguration destruction * Load winmm.dll at runtime * Change function name and compile conditions * Move typedef into #ifndef * Use the correct config in setup * Change lifecycle managment of EventPipeConfiguration's configuration provider * Enable EventPipe tests pri0 and disable broken tests * Replace python3 only error with python2 compatable one * Make common.csproj build pri0 * Change TraceEvent version to 2.0.2 to match published verison * Address cross build failure * Remove use of undefined variable * Add crossgen fix to .cmd * Use more specific types to avoid marshalling errors * Use Assert-style statements and remove one check * Fix cross arch build * Fix flipped branch * Bring build.cmd changes to build.sh * Fix cmake writing * Revert "Bring build.cmd changes to build.sh" This reverts commit 893c6492548d8bc9859ebba5b1b810aa630fac63. * remove stdlib.h * Fix out of order null check
2017-09-22Fix SIGSEGV in EventPipe on Shutdown (#14123)Brian Robbins1-1/+44
* Fix a crash that occurs when a provider is registered after the configuration object has been destroyed. * Code review feedback.
2017-09-14EventPipeProvider destructor hardening (#13958)Victor "Nate" Graf1-50/+76
* Take lock before manipulating list in desctructor * Add NULL checks for provider list * Remove asserts that duplicate conditional check
2017-09-13Eliminate double delete in EventPipeProvider cleanup (#13833)Victor "Nate" Graf1-8/+3
* Eliminate double delete in EventProvider cleanup * Fix access after deletion error * Simplify control flow
2017-09-01Change identifier for EventProviders from GUID to string name (#13370)Victor "Nate" Graf1-26/+16
* [WIP] Changed event provider to user String identifiers * [WIP] Remove GUID from generated code * [WIP] Many small fixes * [WIP] Fix error in constructing GUID * Pass EventSource to abstract away GUID/Name references * Fix various small errors * Delay construction of SString objects * Change GUIDs to names * Change hardcoded GUID strings to names * Revert testing changes * Remove extra line * Use the EventSource name * Use provider full names * Use full-names for Rundown * Bump version number for eventpipe file * Address review comments
2017-08-28EventPipe: fix memory leaks (#12476)Konstantin Baladurin1-2/+23
2017-05-26Fix compile with disabled FEATURE_READYTORUN option (#11875)Petr Bred1-1/+1
- just remove FEATURE_READYTORUN definitions in clrdefinitions.cmake to turn off option Signed-off-by: Petr Bred <bredpetr@gmail.com>
2017-05-25Implement Activity ID / Related Activity ID for EventSources Writing to ↵Brian Robbins1-1/+3
EventPipe (#11904) * Implement thread-local storage of activity ids. * Plumb the activity id and related activity id into the trace file.
2017-05-16Allow provider deletion to be deferred until after tracing is stopped. (#11651)Brian Robbins1-1/+28
2017-05-15Write EventSource events with metadata to EventPipe (#11577)Xiangyang (Mark) Guo1-3/+5
* Fix EventPipe initialization. * rebase code with master, add prototype of event source metadata * fix define event * add null ptr checking * move WriteEvent metadata serialization to managed side * Fix enabled keywords for COMPlus_PerformanceTracing=1. * put parameter name into metadata, use WriteToBuffer * Write event metadata to the file. * allocate buffer in EventPipeEvent ctor * prevent double free * refactor code * AddEvent params reorder
2017-05-15EventPipe: Prepend variable length field sizes (#11600)Brian Robbins1-1/+5
* Write the size in bytes of the stack before the stack contents. * Specify the size of the metadata payload explicitly in the file.
2017-05-12Enable Symbolic Rundown for EventPipe (#11582)Brian Robbins1-2/+38
2017-05-12EventPipe Circular Buffer Support and Ability to Start/Stop Tracing (#11507)Brian Robbins1-8/+259
2017-05-10Re-Factor EventSource to Support Writing to EventPipe (#11435)Brian Robbins1-0/+1
Re-Factor EventSource to Support Writing to EventPipe.
2017-05-06Log Events to EventPipe on Linux (#11433)Brian Robbins1-0/+271
* Implement the EventPipe object model for providers and events. * Plumb Runtime Events into EventPipe (#11145) Plumb runtime ETW events into the EventPipe. * Fix bug where all events except for SampleProfiler events were never enabled. * Plumb EventPipeEventInstance through the EventPipe. * Implement EventPipeFile and FastSerializer. * Write event contents to the EventPipeFile. * Only build EventPipe on Linux. * Conditionally add a sentinel value marking event end. * Send SampleProfiler events to the EventPipeFile. * Fix provider ID printing to JSON file. * Write the start date/time, timestamp, and clock frequency into the trace file. * Support unloading of EventPipeProviders. * Handle failure cases when we can't walk the stack or are shutting down. * Fix a bug where we pass a null src pointer to memcpy.