Hardcode windows PID 4 as "System".

This commit is contained in:
Bartosz Taudul 2019-08-17 03:44:47 +02:00
parent 40eb8a5a03
commit e9080bdbcd

View File

@ -188,33 +188,44 @@ void SysTraceSendExternalName( uint64_t thread )
} }
} }
#endif #endif
if( !threadSent )
{
GetProfiler().SendString( thread, "???", QueueType::ExternalThreadName );
}
const auto pid = GetProcessIdOfThread( hnd ); const auto pid = GetProcessIdOfThread( hnd );
CloseHandle( hnd ); CloseHandle( hnd );
if( pid != 0 ) if( pid != 0 )
{ {
const auto phnd = OpenProcess( PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid ); if( pid == 4 )
if( phnd != INVALID_HANDLE_VALUE )
{ {
char buf[1024]; GetProfiler().SendString( thread, "System", QueueType::ExternalName );
const auto sz = GetProcessImageFileNameA( phnd, buf, 1024 ); return;
CloseHandle( phnd ); }
if( sz != 0 ) else
{
const auto phnd = OpenProcess( PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid );
if( phnd != INVALID_HANDLE_VALUE )
{ {
if( !threadSent ) char buf[1024];
const auto sz = GetProcessImageFileNameA( phnd, buf, 1024 );
CloseHandle( phnd );
if( sz != 0 )
{ {
GetProfiler().SendString( thread, "???", QueueType::ExternalThreadName ); auto ptr = buf + sz - 1;
while( ptr > buf && *ptr != '\\' ) ptr--;
if( *ptr == '\\' ) ptr++;
GetProfiler().SendString( thread, ptr, QueueType::ExternalName );
return;
} }
auto ptr = buf + sz - 1;
while( ptr > buf && *ptr != '\\' ) ptr--;
if( *ptr == '\\' ) ptr++;
GetProfiler().SendString( thread, ptr, QueueType::ExternalName );
return;
} }
} }
} }
} }
GetProfiler().SendString( thread, "???", QueueType::ExternalThreadName ); if( !threadSent )
{
GetProfiler().SendString( thread, "???", QueueType::ExternalThreadName );
}
GetProfiler().SendString( thread, "???", QueueType::ExternalName ); GetProfiler().SendString( thread, "???", QueueType::ExternalName );
} }