Write a file `uuid` in server's data directory that contains random UUID, generated at startup if file does not exist.

It will be used for several purposes:
- to anonymously identify server in Sentry (currently Sentry is unusable);
- (possible future usage) to identify server in ensemble.

@tavplubix comments?
}
        else
        {
            
            if (ptrace(PTRACE_TRACEME, 0, nullptr, nullptr) == -1)
            {
                
                global_context->addWarningMessage(
                    fmt::format("Server is run under debugger and its binary image is modified (most likely with breakpoints).",
                    calculated_binary_hash)
                );
            }
            else
            {
                throw Exception(ErrorCodes::CORRUPTED_DATA,
                    "Calculated checksum of the ClickHouse binary ({0}) does not correspond"
                    " to the reference checksum stored in the binary ({1})."
                    " It may indicate one of the following:"
                    " - the file {2} was changed just after startup;"
                    " - the file {2} is damaged on disk due to faulty hardware;"
                    " - the loaded executable is damaged in memory due to faulty hardware;"
                    " - the file {2} was intentionally modified;"
                    " - logical error in code."
                    , calculated_binary_hash, stored_binary_hash, executable_path);
            }
        }
    }
    else
        executable_path = "/usr/bin/clickhouse";