diff --git a/capture/src/lib.cpp b/capture/src/lib.cpp index 627e5f90..af31d37e 100644 --- a/capture/src/lib.cpp +++ b/capture/src/lib.cpp @@ -14,7 +14,8 @@ static bool s_isStdoutATerminal = false; -void InitIsStdoutATerminal() { +void InitIsStdoutATerminal() +{ #ifdef _WIN32 s_isStdoutATerminal = _isatty( fileno( stdout ) ); #else @@ -24,7 +25,6 @@ void InitIsStdoutATerminal() { bool IsStdoutATerminal() { return s_isStdoutATerminal; } - #define ANSI_RESET "\033[0m" #define ANSI_BOLD "\033[1m" #define ANSI_BLACK "\033[30m" @@ -40,9 +40,10 @@ bool IsStdoutATerminal() { return s_isStdoutATerminal; } // Like printf, but if stdout is a terminal, prepends the output with // the given `ansiEscape` and appends ANSI_RESET. #ifdef __GNUC__ -[[gnu::format(__printf__, 2, 3)]] +[[gnu::format( __printf__, 2, 3 )]] #endif -void AnsiPrintf( const char* ansiEscape, const char* format, ... ) { +void AnsiPrintf( const char* ansiEscape, const char* format, ... ) +{ if( IsStdoutATerminal() ) { // Prepend ansiEscape and append ANSI_RESET. @@ -65,27 +66,30 @@ void AnsiPrintf( const char* ansiEscape, const char* format, ... ) { // Check handshake status // If failure, printf helpful message and return non-zero -int checkHandshake(tracy::HandshakeStatus handshake) +int checkHandshake( tracy::HandshakeStatus handshake ) { if( handshake == tracy::HandshakeProtocolMismatch ) { - printf( "\nThe client you are trying to connect to uses incompatible protocol version.\nMake sure you are using the same Tracy version on both client and server.\n" ); + printf( + "\nThe client you are trying to connect to uses incompatible protocol version.\nMake sure you are using the same Tracy version on both client and server.\n" ); return 1; } if( handshake == tracy::HandshakeNotAvailable ) { - printf( "\nThe client you are trying to connect to is no longer able to sent profiling data,\nbecause another server was already connected to it.\nYou can do the following:\n\n 1. Restart the client application.\n 2. Rebuild the client application with on-demand mode enabled.\n" ); + printf( + "\nThe client you are trying to connect to is no longer able to sent profiling data,\nbecause another server was already connected to it.\nYou can do the following:\n\n 1. Restart the client application.\n 2. Rebuild the client application with on-demand mode enabled.\n" ); return 2; } if( handshake == tracy::HandshakeDropped ) { - printf( "\nThe client you are trying to connect to has disconnected during the initial\nconnection handshake. Please check your network configuration.\n" ); + printf( + "\nThe client you are trying to connect to has disconnected during the initial\nconnection handshake. Please check your network configuration.\n" ); return 3; } return 0; } -void printCurrentMemoryUsage(int64_t memoryLimit) +void printCurrentMemoryUsage( int64_t memoryLimit ) { AnsiPrintf( ANSI_RED ANSI_BOLD, "%s", tracy::MemSizeToString( tracy::memUsage.load( std::memory_order_relaxed ) ) ); if( memoryLimit > 0 ) @@ -95,7 +99,7 @@ void printCurrentMemoryUsage(int64_t memoryLimit) } } -void printWorkerUpdate(tracy::Worker& worker, int64_t memoryLimit, bool erase, bool memoryUsage) +void printWorkerUpdate( tracy::Worker& worker, int64_t memoryLimit, bool erase, bool memoryUsage ) { auto& lock = worker.GetMbpsDataLock(); lock.lock(); @@ -111,30 +115,30 @@ void printWorkerUpdate(tracy::Worker& worker, int64_t memoryLimit, bool erase, b unit = "Kbps"; unitsPerMbps = 1000.f; } - if(erase) + if( erase ) { - AnsiPrintf(ANSI_ERASE_LINE, "\r"); + AnsiPrintf( ANSI_ERASE_LINE, "\r" ); } AnsiPrintf( ANSI_CYAN ANSI_BOLD, "%7.2f %s", mbps * unitsPerMbps, unit ); - printf( " /"); + printf( " /" ); AnsiPrintf( ANSI_CYAN ANSI_BOLD, "%5.1f%%", compRatio * 100.f ); - printf( " ="); + printf( " =" ); AnsiPrintf( ANSI_YELLOW ANSI_BOLD, "%7.2f Mbps", mbps / compRatio ); - printf( " | "); - AnsiPrintf( ANSI_YELLOW, "Tx: "); + printf( " | " ); + AnsiPrintf( ANSI_YELLOW, "Tx: " ); AnsiPrintf( ANSI_GREEN, "%s", tracy::MemSizeToString( netTotal ) ); - if (memoryUsage) + if( memoryUsage ) { - printf( " | "); - printCurrentMemoryUsage(memoryLimit); + printf( " | " ); + printCurrentMemoryUsage( memoryLimit ); } - printf( " | "); + printf( " | " ); AnsiPrintf( ANSI_RED, "%s", tracy::TimeToString( worker.GetLastTime() - worker.GetFirstTime() ) ); fflush( stdout ); } -bool printWorkerFailure(tracy::Worker& worker, char const* prefix) +bool printWorkerFailure( tracy::Worker& worker, char const* prefix ) { auto const& failure = worker.GetFailureType(); if( failure == tracy::Worker::Failure::None ) @@ -143,7 +147,8 @@ bool printWorkerFailure(tracy::Worker& worker, char const* prefix) } else { - AnsiPrintf( ANSI_RED ANSI_BOLD, "\n%s Instrumentation failure: %s", prefix, tracy::Worker::GetFailureString( failure ) ); + AnsiPrintf( ANSI_RED ANSI_BOLD, "\n%s Instrumentation failure: %s", prefix, + tracy::Worker::GetFailureString( failure ) ); auto& fd = worker.GetFailureData(); if( !fd.message.empty() ) { @@ -164,12 +169,12 @@ bool printWorkerFailure(tracy::Worker& worker, char const* prefix) else { const auto fsz = frameData->size; - for( uint8_t f=0; fdata[f]; auto txt = worker.GetString( frame.name ); - if( fidx == 0 && f != fsz-1 ) + if( fidx == 0 && f != fsz - 1 ) { auto test = tracy::s_tracyStackFrames; bool match = false; @@ -180,12 +185,11 @@ bool printWorkerFailure(tracy::Worker& worker, char const* prefix) match = true; break; } - } - while( *++test ); + } while( *++test ); if( match ) continue; } - if( f == fsz-1 ) + if( f == fsz - 1 ) { printf( "%3i. ", fidx++ ); } diff --git a/server/TracyProtocolServer.cpp b/server/TracyProtocolServer.cpp index 749feef2..5b220be7 100644 --- a/server/TracyProtocolServer.cpp +++ b/server/TracyProtocolServer.cpp @@ -5,103 +5,103 @@ namespace tracy { -std::optional ParseBroadcastMessage(const char* msg, size_t msgLen) +std::optional ParseBroadcastMessage( const char* msg, size_t msgLen ) { - if (msgLen < sizeof(uint16_t)) + if( msgLen < sizeof( uint16_t ) ) { std::cout << "Received too short broadcast message" << std::endl; return std::nullopt; } uint16_t broadcastVersion; - memcpy(&broadcastVersion, msg, sizeof(uint16_t)); - if (broadcastVersion > tracy::BroadcastVersion) + memcpy( &broadcastVersion, msg, sizeof( uint16_t ) ); + if( broadcastVersion > tracy::BroadcastVersion ) { std::cout << "Received broadcast message with unsupported version: " << broadcastVersion << std::endl; return std::nullopt; } - switch (broadcastVersion) + switch( broadcastVersion ) { - case 3: + case 3: + { + if( msgLen > sizeof( tracy::BroadcastMessage ) ) { - if (msgLen > sizeof(tracy::BroadcastMessage)) - { - std::cout << "Received unexpected size broadcast v3 message" << std::endl; - return std::nullopt; - } - tracy::BroadcastMessage bm; - memcpy(&bm, msg, msgLen); - return bm; - break; + std::cout << "Received unexpected size broadcast v3 message" << std::endl; + return std::nullopt; } - case 2: + tracy::BroadcastMessage bm; + memcpy( &bm, msg, msgLen ); + return bm; + break; + } + case 2: + { + if( msgLen > sizeof( tracy::BroadcastMessage_v2 ) ) { - if (msgLen > sizeof(tracy::BroadcastMessage_v2)) - { - std::cout << "Received unexpected size broadcast v2 message" << std::endl; - return std::nullopt; - } - tracy::BroadcastMessage_v2 bm; - memcpy(&bm, msg, msgLen); + std::cout << "Received unexpected size broadcast v2 message" << std::endl; + return std::nullopt; + } + tracy::BroadcastMessage_v2 bm; + memcpy( &bm, msg, msgLen ); - tracy::BroadcastMessage out; - out.broadcastVersion = broadcastVersion; - out.protocolVersion = bm.protocolVersion; - out.activeTime = bm.activeTime; - out.listenPort = bm.listenPort; - strcpy(out.programName, bm.programName); - out.pid = 0; - return out; - break; - } - case 1: + tracy::BroadcastMessage out; + out.broadcastVersion = broadcastVersion; + out.protocolVersion = bm.protocolVersion; + out.activeTime = bm.activeTime; + out.listenPort = bm.listenPort; + strcpy( out.programName, bm.programName ); + out.pid = 0; + return out; + break; + } + case 1: + { + if( msgLen > sizeof( tracy::BroadcastMessage_v1 ) ) { - if (msgLen > sizeof(tracy::BroadcastMessage_v1)) - { - std::cout << "Received unexpected size broadcast v1 message" << std::endl; - return std::nullopt; - } - tracy::BroadcastMessage_v1 bm; - memcpy(&bm, msg, msgLen); - - tracy::BroadcastMessage out; - out.broadcastVersion = broadcastVersion; - out.protocolVersion = bm.protocolVersion; - out.activeTime = bm.activeTime; - out.listenPort = bm.listenPort; - strcpy(out.programName, bm.programName); - out.pid = 0; - return out; - break; + std::cout << "Received unexpected size broadcast v1 message" << std::endl; + return std::nullopt; } - case 0: + tracy::BroadcastMessage_v1 bm; + memcpy( &bm, msg, msgLen ); + + tracy::BroadcastMessage out; + out.broadcastVersion = broadcastVersion; + out.protocolVersion = bm.protocolVersion; + out.activeTime = bm.activeTime; + out.listenPort = bm.listenPort; + strcpy( out.programName, bm.programName ); + out.pid = 0; + return out; + break; + } + case 0: + { + if( msgLen > sizeof( tracy::BroadcastMessage_v0 ) ) { - if (msgLen > sizeof(tracy::BroadcastMessage_v0)) - { - std::cout << "Received unexpected size broadcast v0 message" << std::endl; - return std::nullopt; - } - tracy::BroadcastMessage_v0 bm; - memcpy(&bm, msg, msgLen); - - tracy::BroadcastMessage out; - out.broadcastVersion = broadcastVersion; - out.protocolVersion = bm.protocolVersion; - out.activeTime = bm.activeTime; - out.listenPort = tracy::DEFAULT_CLIENT_DATA_TCP_PORT; - strcpy(out.programName, bm.programName); - out.pid = 0; - return out; - break; + std::cout << "Received unexpected size broadcast v0 message" << std::endl; + return std::nullopt; } - default: - assert(false); - break; + tracy::BroadcastMessage_v0 bm; + memcpy( &bm, msg, msgLen ); + + tracy::BroadcastMessage out; + out.broadcastVersion = broadcastVersion; + out.protocolVersion = bm.protocolVersion; + out.activeTime = bm.activeTime; + out.listenPort = tracy::DEFAULT_CLIENT_DATA_TCP_PORT; + strcpy( out.programName, bm.programName ); + out.pid = 0; + return out; + break; + } + default: + assert( false ); + break; } return std::nullopt; } -uint64_t ClientUniqueID(tracy::IpAddress const& addr, uint16_t port) +uint64_t ClientUniqueID( tracy::IpAddress const& addr, uint16_t port ) { - return uint64_t(addr.GetNumber()) | (uint64_t(port) << 32); + return uint64_t( addr.GetNumber() ) | ( uint64_t( port ) << 32 ); } } diff --git a/server/TracyProtocolServer.hpp b/server/TracyProtocolServer.hpp index 53e53436..c2203c37 100644 --- a/server/TracyProtocolServer.hpp +++ b/server/TracyProtocolServer.hpp @@ -2,16 +2,16 @@ #ifndef __TRACYPROTOCOLSERVER_HPP__ #define __TRACYPROTOCOLSERVER_HPP__ -#include #include "TracyProtocol.hpp" #include "TracySocket.hpp" +#include namespace tracy { // create the latest version of broadcast message, migrating older versions if possible -std::optional ParseBroadcastMessage(const char* msg, size_t msgLen); +std::optional ParseBroadcastMessage( const char* msg, size_t msgLen ); // internal unique ID for a client -uint64_t ClientUniqueID(tracy::IpAddress const& addr, uint16_t port); +uint64_t ClientUniqueID( tracy::IpAddress const& addr, uint16_t port ); } #endif