diff options
author | Adam Sitnik <adam.sitnik@gmail.com> | 2018-02-02 23:07:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-02 23:07:25 +0100 |
commit | f6ba335278bb966e8e5f9cd33f51818c6fac44fa (patch) | |
tree | 34f19451c962381c3d834fa8db5f334556390756 /src/vm/eventpipeevent.h | |
parent | 70bf6a4586b3cad9cf8cc26ca85ec6d552123202 (diff) | |
download | coreclr-f6ba335278bb966e8e5f9cd33f51818c6fac44fa.tar.gz coreclr-f6ba335278bb966e8e5f9cd33f51818c6fac44fa.tar.bz2 coreclr-f6ba335278bb966e8e5f9cd33f51818c6fac44fa.zip |
Event Pipe File V3 (#16107)
* 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
Diffstat (limited to 'src/vm/eventpipeevent.h')
-rw-r--r-- | src/vm/eventpipeevent.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vm/eventpipeevent.h b/src/vm/eventpipeevent.h index c91c4bac8e..1ae02900e1 100644 --- a/src/vm/eventpipeevent.h +++ b/src/vm/eventpipeevent.h @@ -75,11 +75,15 @@ private: // True if the event is currently enabled. bool IsEnabled() const; - // Get metadata BYTE *GetMetadata() const; - // Get metadata length unsigned int GetMetadataLength() const; + + private: + // used when Metadata is not provided + BYTE *BuildMinimumMetadata(); + + unsigned int GetMinimumMetadataLength(); }; #endif // FEATURE_PERFTRACING |