summaryrefslogtreecommitdiff
path: root/src/vm/eventpipeevent.h
diff options
context:
space:
mode:
authorAdam Sitnik <adam.sitnik@gmail.com>2018-02-02 23:07:25 +0100
committerGitHub <noreply@github.com>2018-02-02 23:07:25 +0100
commitf6ba335278bb966e8e5f9cd33f51818c6fac44fa (patch)
tree34f19451c962381c3d834fa8db5f334556390756 /src/vm/eventpipeevent.h
parent70bf6a4586b3cad9cf8cc26ca85ec6d552123202 (diff)
downloadcoreclr-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.h8
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