Log Events to EventPipe on Linux (dotnet/coreclr#11433)
authorBrian Robbins <brianrob@microsoft.com>
Sat, 6 May 2017 19:36:08 +0000 (12:36 -0700)
committerVance Morrison <vancem@microsoft.com>
Sat, 6 May 2017 19:36:08 +0000 (12:36 -0700)
commitb912984d26c7d2d2166a3d23f8b395228650fdbf
treea2f2527ef7e88c92438659456406edc7082f016c
parent4d0313a7041c3a40fc9825bb082fb8295c2a1d0a
Log Events to EventPipe on Linux (dotnet/coreclr#11433)

* Implement the EventPipe object model for providers and events.

* Plumb Runtime Events into EventPipe (dotnet/coreclr#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.

Commit migrated from https://github.com/dotnet/coreclr/commit/72ac46450bec8ea88ed023d9c1faf5a04556c834
27 files changed:
src/coreclr/build.sh
src/coreclr/clrdefinitions.cmake
src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt
src/coreclr/src/scripts/genEventPipe.py [new file with mode: 0644]
src/coreclr/src/scripts/genXplatEventing.py
src/coreclr/src/scripts/genXplatLttng.py
src/coreclr/src/vm/CMakeLists.txt
src/coreclr/src/vm/ceemain.cpp
src/coreclr/src/vm/eventpipe.cpp
src/coreclr/src/vm/eventpipe.h
src/coreclr/src/vm/eventpipeconfiguration.cpp [new file with mode: 0644]
src/coreclr/src/vm/eventpipeconfiguration.h [new file with mode: 0644]
src/coreclr/src/vm/eventpipeevent.cpp [new file with mode: 0644]
src/coreclr/src/vm/eventpipeevent.h [new file with mode: 0644]
src/coreclr/src/vm/eventpipeeventinstance.cpp [new file with mode: 0644]
src/coreclr/src/vm/eventpipeeventinstance.h [new file with mode: 0644]
src/coreclr/src/vm/eventpipefile.cpp [new file with mode: 0644]
src/coreclr/src/vm/eventpipefile.h [new file with mode: 0644]
src/coreclr/src/vm/eventpipejsonfile.cpp
src/coreclr/src/vm/eventpipejsonfile.h
src/coreclr/src/vm/eventpipeprovider.cpp [new file with mode: 0644]
src/coreclr/src/vm/eventpipeprovider.h [new file with mode: 0644]
src/coreclr/src/vm/fastserializableobject.h [new file with mode: 0644]
src/coreclr/src/vm/fastserializer.cpp [new file with mode: 0644]
src/coreclr/src/vm/fastserializer.h [new file with mode: 0644]
src/coreclr/src/vm/sampleprofiler.cpp
src/coreclr/src/vm/sampleprofiler.h