Log Events to EventPipe on Linux (#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)
commit72ac46450bec8ea88ed023d9c1faf5a04556c834
tree59085824f4268257d041ed9870f038216cd8ed45
parent3ababc21ab334a2e37c6ba4115c946ea26a6f2fb
Log Events to EventPipe on Linux (#11433)

* 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.
27 files changed:
build.sh
clrdefinitions.cmake
src/dlls/mscoree/coreclr/CMakeLists.txt
src/scripts/genEventPipe.py [new file with mode: 0644]
src/scripts/genXplatEventing.py
src/scripts/genXplatLttng.py
src/vm/CMakeLists.txt
src/vm/ceemain.cpp
src/vm/eventpipe.cpp
src/vm/eventpipe.h
src/vm/eventpipeconfiguration.cpp [new file with mode: 0644]
src/vm/eventpipeconfiguration.h [new file with mode: 0644]
src/vm/eventpipeevent.cpp [new file with mode: 0644]
src/vm/eventpipeevent.h [new file with mode: 0644]
src/vm/eventpipeeventinstance.cpp [new file with mode: 0644]
src/vm/eventpipeeventinstance.h [new file with mode: 0644]
src/vm/eventpipefile.cpp [new file with mode: 0644]
src/vm/eventpipefile.h [new file with mode: 0644]
src/vm/eventpipejsonfile.cpp
src/vm/eventpipejsonfile.h
src/vm/eventpipeprovider.cpp [new file with mode: 0644]
src/vm/eventpipeprovider.h [new file with mode: 0644]
src/vm/fastserializableobject.h [new file with mode: 0644]
src/vm/fastserializer.cpp [new file with mode: 0644]
src/vm/fastserializer.h [new file with mode: 0644]
src/vm/sampleprofiler.cpp
src/vm/sampleprofiler.h