summaryrefslogtreecommitdiff
path: root/src/vm/eventpipe.h
diff options
context:
space:
mode:
authorBrian Robbins <brianrob@microsoft.com>2018-03-21 13:31:04 -0700
committerGitHub <noreply@github.com>2018-03-21 13:31:04 -0700
commitb82063e24b34c875891916a1bbc01728b9022bf3 (patch)
tree8af81814d735831c09ed7b354b0c1b00ff331783 /src/vm/eventpipe.h
parent166258a0b07246bb829695cebb1223b057339b49 (diff)
downloadcoreclr-b82063e24b34c875891916a1bbc01728b9022bf3.tar.gz
coreclr-b82063e24b34c875891916a1bbc01728b9022bf3.tar.bz2
coreclr-b82063e24b34c875891916a1bbc01728b9022bf3.zip
Add More Process Information to EventPipe Traces (#17080)
Diffstat (limited to 'src/vm/eventpipe.h')
-rw-r--r--src/vm/eventpipe.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/vm/eventpipe.h b/src/vm/eventpipe.h
index 907e0d7778..2becb5c0b8 100644
--- a/src/vm/eventpipe.h
+++ b/src/vm/eventpipe.h
@@ -16,6 +16,7 @@ class EventPipeFile;
class EventPipeJsonFile;
class EventPipeBuffer;
class EventPipeBufferManager;
+class EventPipeEventSource;
class EventPipeProvider;
class MethodDesc;
class SampleProfilerEventInstance;
@@ -35,7 +36,7 @@ typedef void (*EventPipeCallback)(
struct EventData
{
public:
- unsigned long Ptr;
+ UINT64 Ptr;
unsigned int Size;
unsigned int Reserved;
};
@@ -44,7 +45,7 @@ class EventPipeEventPayload
{
private:
BYTE *m_pData;
- EventData **m_pEventData;
+ EventData *m_pEventData;
unsigned int m_eventDataCount;
unsigned int m_size;
bool m_allocatedData;
@@ -57,7 +58,7 @@ public:
EventPipeEventPayload(BYTE *pData, unsigned int length);
// Build this payload to contain an array of EventData objects
- EventPipeEventPayload(EventData **pEventData, unsigned int eventDataCount);
+ EventPipeEventPayload(EventData *pEventData, unsigned int eventDataCount);
// If a buffer was allocated internally, delete it
~EventPipeEventPayload();
@@ -87,7 +88,7 @@ public:
return m_size;
}
- EventData** GetEventDataArray() const
+ EventData* GetEventDataArray() const
{
LIMITED_METHOD_CONTRACT;
@@ -258,7 +259,7 @@ class EventPipe
// Write out an event from an EventData array.
// Data is written as a serialized blob matching the ETW serialization conventions.
- static void WriteEvent(EventPipeEvent &event, EventData **pEventData, unsigned int eventDataCount, LPCGUID pActivityId = NULL, LPCGUID pRelatedActivityId = NULL);
+ static void WriteEvent(EventPipeEvent &event, EventData *pEventData, unsigned int eventDataCount, LPCGUID pActivityId = NULL, LPCGUID pRelatedActivityId = NULL);
// Write out a sample profile event.
static void WriteSampleProfileEvent(Thread *pSamplingThread, EventPipeEvent *pEvent, Thread *pTargetThread, StackContents &stackContents, BYTE *pData = NULL, unsigned int length = 0);
@@ -269,6 +270,9 @@ class EventPipe
// Get the managed call stack for the specified thread.
static bool WalkManagedStackForThread(Thread *pThread, StackContents &stackContents);
+ // Save the command line for the current process.
+ static void SaveCommandLine(LPCWSTR pwzAssemblyPath, int argc, LPCWSTR *argv);
+
protected:
// The counterpart to WriteEvent which after the payload is constructed
@@ -299,6 +303,8 @@ class EventPipe
static EventPipeSession *s_pSession;
static EventPipeBufferManager *s_pBufferManager;
static EventPipeFile *s_pFile;
+ static EventPipeEventSource *s_pEventSource;
+ static LPCWSTR s_pCommandLine;
#ifdef _DEBUG
static EventPipeFile *s_pSyncFile;
static EventPipeJsonFile *s_pJsonFile;
@@ -408,7 +414,7 @@ public:
static void QCALLTYPE WriteEventData(
INT_PTR eventHandle,
UINT32 eventID,
- EventData **pEventData,
+ EventData *pEventData,
UINT32 eventDataCount,
LPCGUID pActivityId, LPCGUID pRelatedActivityId);
};