missing events

This commit is contained in:
Marcos Slomp
2025-12-05 12:46:27 -08:00
parent 7b5de9e2b9
commit d363ddde2a
2 changed files with 14 additions and 1 deletions

View File

@@ -190,6 +190,8 @@ bool SysTraceStart( int64_t& samplingPeriod )
return false;
#ifndef TRACY_NO_CONTEXT_SWITCH
if ( etw::EnableProcessAndThreadMonitoring(session) != ERROR_SUCCESS )
return etw::StopSession(session), false;
if ( etw::EnableContextSwitchMonitoring(session) != ERROR_SUCCESS )
return etw::StopSession( session ), false;
#endif

View File

@@ -167,6 +167,15 @@ static Session StartPrivateKernelSession( const CHAR* name )
return session;
}
static ULONG EnableProcessAndThreadMonitoring(Session& session) {
ULONGLONG MatchAnyKeyword = SYSTEM_PROCESS_KW_THREAD; // ThreadStart and ThreadDCStart events
ULONG status = EnableProvider( session, SystemProcessProviderGuid,
EVENT_CONTROL_CODE_ENABLE_PROVIDER, TRACE_LEVEL_INFORMATION, MatchAnyKeyword );
if (status != ERROR_SUCCESS)
return status;
return status;
}
static ULONG EnableCPUProfiling( Session& session, int microseconds = 125 /* 8KHz = 125us */ )
{
// CPU Profiling requires special privileges on top of admin privileges
@@ -192,7 +201,9 @@ static ULONG EnableCPUProfiling( Session& session, int microseconds = 125 /* 8KH
static ULONG EnableContextSwitchMonitoring( Session& session )
{
ULONGLONG MatchAnyKeyword = SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH;
ULONGLONG MatchAnyKeyword = 0;
MatchAnyKeyword |= SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH; // CSwitch events
MatchAnyKeyword |= SYSTEM_SCHEDULER_KW_DISPATCHER; // ReadyThread events
ULONG status = EnableProvider( session, SystemSchedulerProviderGuid,
EVENT_CONTROL_CODE_ENABLE_PROVIDER, TRACE_LEVEL_INFORMATION, MatchAnyKeyword );
if( status != ERROR_SUCCESS )