diff --git a/src/crashlog.cpp b/src/crashlog.cpp index f54a902afc..6347640922 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -25,6 +25,7 @@ #include "gfx_func.h" #include "network/network.h" #include "network/network_survey.h" +#include "network/network_sync.h" #include "language.h" #include "fontcache.h" #include "news_gui.h" @@ -564,6 +565,23 @@ char *CrashLog::FillCrashLog(char *buffer, const char *last) }); #endif + if (_networking) { + buffer = this->TryCrashLogFaultSection(buffer, last, "network sync", [](CrashLog *self, char *buffer, const char *last) -> char * { + if (IsGameThread() && _record_sync_records && !_network_sync_records.empty()) { + uint total = 0; + for (uint32 count : _network_sync_record_counts) { + total += count; + } + NetworkSyncRecordEvents event = NSRE_BEGIN; + if (_network_sync_records.size() > total + 1) { + event = (NetworkSyncRecordEvents)(_network_sync_records.back().frame); + } + buffer += seprintf(buffer, last, "Last sync record type: %s\n\n", GetSyncRecordEventName(event)); + } + return buffer; + }); + } + buffer = this->TryCrashLogFaultSection(buffer, last, "thread", [](CrashLog *self, char *buffer, const char *last) -> char * { if (IsNonMainThread()) { buffer += seprintf(buffer, last, "Non-main thread (");