diff options
author | Brian Robbins <brianrob@microsoft.com> | 2018-10-05 16:44:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-05 16:44:15 -0700 |
commit | 457148064c836daa746542f1559b7958d6420c22 (patch) | |
tree | 637c49662f44b301afc0f3450055a7c72fd00119 /src/vm/eventpipesession.cpp | |
parent | 27c848e37e9998142b60e776cf5b5d08a3543fe1 (diff) | |
download | coreclr-457148064c836daa746542f1559b7958d6420c22.tar.gz coreclr-457148064c836daa746542f1559b7958d6420c22.tar.bz2 coreclr-457148064c836daa746542f1559b7958d6420c22.zip |
Enable Config-File Based Control of EventPipe (#20238)
Diffstat (limited to 'src/vm/eventpipesession.cpp')
-rw-r--r-- | src/vm/eventpipesession.cpp | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/vm/eventpipesession.cpp b/src/vm/eventpipesession.cpp index b10caf2f5b..2dd1a3f38d 100644 --- a/src/vm/eventpipesession.cpp +++ b/src/vm/eventpipesession.cpp @@ -75,19 +75,6 @@ void EventPipeSession::AddSessionProvider(EventPipeSessionProvider *pProvider) m_pProviderList->AddSessionProvider(pProvider); } -void EventPipeSession::EnableAllEvents() -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - m_pProviderList->EnableAllEvents(); -} - EventPipeSessionProvider* EventPipeSession::GetSessionProvider(EventPipeProvider *pProvider) { CONTRACTL @@ -118,12 +105,21 @@ EventPipeSessionProviderList::EventPipeSessionProviderList( for(unsigned int i=0; i<numConfigs; i++) { EventPipeProviderConfiguration *pConfig = &pConfigs[i]; - EventPipeSessionProvider *pProvider = new EventPipeSessionProvider( - pConfig->GetProviderName(), - pConfig->GetKeywords(), - (EventPipeEventLevel)pConfig->GetLevel()); - m_pProviders->InsertTail(new SListElem<EventPipeSessionProvider*>(pProvider)); + // Enable all events if the provider name == '*', all keywords are on and the requested level == verbose. + if((wcscmp(W("*"), pConfig->GetProviderName()) == 0) && (pConfig->GetKeywords() == 0xFFFFFFFFFFFFFFFF) && ((EventPipeEventLevel)pConfig->GetLevel() == EventPipeEventLevel::Verbose) && (m_pCatchAllProvider == NULL)) + { + m_pCatchAllProvider = new EventPipeSessionProvider(NULL, 0xFFFFFFFFFFFFFFFF, EventPipeEventLevel::Verbose); + } + else + { + EventPipeSessionProvider *pProvider = new EventPipeSessionProvider( + pConfig->GetProviderName(), + pConfig->GetKeywords(), + (EventPipeEventLevel)pConfig->GetLevel()); + + m_pProviders->InsertTail(new SListElem<EventPipeSessionProvider*>(pProvider)); + } } } @@ -176,16 +172,6 @@ void EventPipeSessionProviderList::AddSessionProvider(EventPipeSessionProvider * } } -void EventPipeSessionProviderList::EnableAllEvents() -{ - LIMITED_METHOD_CONTRACT; - - if(m_pCatchAllProvider == NULL) - { - m_pCatchAllProvider = new EventPipeSessionProvider(NULL, 0xFFFFFFFFFFFFFFFF, EventPipeEventLevel::Verbose); - } -} - EventPipeSessionProvider* EventPipeSessionProviderList::GetSessionProvider( EventPipeProvider *pProvider) { |