diff options
author | Rama <ramarag@microsoft.com> | 2015-12-21 19:26:52 -0800 |
---|---|---|
committer | Rama <ramarag@microsoft.com> | 2015-12-28 15:41:59 -0800 |
commit | f1f40524c17035247666ca7f04e9dd41c5d1c172 (patch) | |
tree | 098d7521298cc8302e82e3958f867a0b62906397 /Documentation | |
parent | 4be02beac6b35dc675956c55ed0ab7b947fd5c4f (diff) | |
download | coreclr-f1f40524c17035247666ca7f04e9dd41c5d1c172.tar.gz coreclr-f1f40524c17035247666ca7f04e9dd41c5d1c172.tar.bz2 coreclr-f1f40524c17035247666ca7f04e9dd41c5d1c172.zip |
Automating Event Logging Infrastructure: With this change the infrastructure required for Event Logging
will be generated as part of build
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/README.md | 1 | ||||
-rw-r--r-- | Documentation/building/windows-instructions.md | 6 | ||||
-rw-r--r-- | Documentation/coding-guidelines/EventLogging.md | 19 |
3 files changed, 26 insertions, 0 deletions
diff --git a/Documentation/README.md b/Documentation/README.md index 384dd1f446..b207477471 100644 --- a/Documentation/README.md +++ b/Documentation/README.md @@ -38,6 +38,7 @@ Coding Guidelines - [CLR Coding Guide](coding-guidelines/clr-code-guide.md) - [CLR JIT Coding Conventions](coding-guidelines/clr-jit-coding-conventions.md) - [Cross Platform Performance and Eventing Design](coding-guidelines/cross-platform-performance-and-eventing.md) +- [Adding New Events to the VM](coding-guidelines/EventLogging.md) Build CoreCLR from Source ========================= diff --git a/Documentation/building/windows-instructions.md b/Documentation/building/windows-instructions.md index 3d0a0389c9..fd4f3de3d0 100644 --- a/Documentation/building/windows-instructions.md +++ b/Documentation/building/windows-instructions.md @@ -31,6 +31,12 @@ The CoreCLR build relies on CMake for the build. We are currently using CMake 3. - Install [CMake](http://www.cmake.org/download) for Windows. - Add it to the PATH environment variable. +Python +--------- +Python is used in the build system. We are currently using python 2.7.9. +- Install [Python](https://www.python.org/downloads/) for Windows. +- Add it to the PATH environment variable. + Git Setup --------- diff --git a/Documentation/coding-guidelines/EventLogging.md b/Documentation/coding-guidelines/EventLogging.md new file mode 100644 index 0000000000..a53d6e9844 --- /dev/null +++ b/Documentation/coding-guidelines/EventLogging.md @@ -0,0 +1,19 @@ +# CoreClr Event Logging Design + +##Introduction + +Event Logging is a mechanism by which CoreClr can provide a variety of information on it's state. This Logging works by inserting explicit logging calls by the developer within the VM . The Event Logging mechanism is largely based on [ETW- Event Tracing For Windows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=vs.85).aspx) + +# Adding Events to the Runtime + +- Edit the [Event manifest](../../src/vm/ClrEtwAll.man) to add a new event. For guidelines on adding new events, take a look at the existing events in the manifest and this guide forĀ [ETW Manifests](https://msdn.microsoft.com/en-us/library/dd996930%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396). +- The build system should automatically generate the required artifacts for the added events. +- Add entries in the [exclusion list](../../src/vm/ClrEtwAllMeta) if necessary +- The Event Logging Mechanism provides the following two functions, which can be used within the VM: + - **FireEtw**EventName, this is used to trigger the event + - **EventEnabled**EventName, this is used to see if any consumer has subscribed to this event + + +# Adding New Logging System + +Though the the Event logging system was designed for ETW, the build system provides a mechanism, basically an [adapter script- genXplatEventing.py](../../src/scripts/genXplatEventing.py) so that other Logging System can be added and used by CoreClr. An Example of such an extension for [LTTng logging system](https://lttng.org/) can be found in [genXplatLttng.py](../../src/scripts/genXplatLttng.py ) |