From 6d8abfe640e0eb34a6eab1bb4529dee291d6d505 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 18 May 2021 02:49:41 +0200 Subject: [PATCH] Add utility for trace version identification. --- extra/identify.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 extra/identify.cpp diff --git a/extra/identify.cpp b/extra/identify.cpp new file mode 100644 index 00000000..897eba9a --- /dev/null +++ b/extra/identify.cpp @@ -0,0 +1,50 @@ +// g++ identify.cpp -lpthread ../common/tracy_lz4.cpp ../zstd/common/*.c ../zstd/decompress/*.c + +#include +#include +#include + +#include "../server/TracyFileRead.hpp" +#include "../server/TracyVersion.hpp" + +static const uint8_t FileHeader[8] { 't', 'r', 'a', 'c', 'y', tracy::Version::Major, tracy::Version::Minor, tracy::Version::Patch }; +enum { FileHeaderMagic = 5 }; + +int main( int argc, char** argv ) +{ + if( argc != 2 ) + { + fprintf( stderr, "Usage: %s trace\n", argv[0] ); + return -1; + } + + try + { + std::unique_ptr f( tracy::FileRead::Open( argv[1] ) ); + if( !f ) + { + fprintf( stderr, "%s: Cannot open!\n", argv[1] ); + return -2; + } + + uint8_t hdr[8]; + f->Read( hdr, sizeof( hdr ) ); + if( memcmp( FileHeader, hdr, FileHeaderMagic ) != 0 ) + { + fprintf( stderr, "%s: Bad header!\n", argv[1] ); + return -3; + } + + printf( "%s: %i.%i.%i\n", argv[1], hdr[FileHeaderMagic], hdr[FileHeaderMagic+1], hdr[FileHeaderMagic+2] ); + } + catch( const tracy::NotTracyDump& ) + { + fprintf( stderr, "%s: Not a tracy dump!\n", argv[1] ); + return -4; + } + catch( const tracy::FileReadError& ) + { + fprintf( stderr, "%s: File read error!\n", argv[1] ); + return -5; + } +}