OpenTTD Source
20240917-master-g9ab0a47812
|
Go to the documentation of this file.
37 #define Debug(category, level, format_string, ...) do { if ((level) == 0 || _debug_ ## category ## _level >= (level)) DebugPrint(#category, level, fmt::format(FMT_STRING(format_string) __VA_OPT__(,) __VA_ARGS__)); } while (false)
38 void DebugPrint(
const char *category,
int level,
const std::string &message);
40 extern int _debug_driver_level;
41 extern int _debug_grf_level;
42 extern int _debug_map_level;
43 extern int _debug_misc_level;
44 extern int _debug_net_level;
45 extern int _debug_sprite_level;
46 extern int _debug_oldloader_level;
47 extern int _debug_yapf_level;
48 extern int _debug_fontcache_level;
49 extern int _debug_script_level;
50 extern int _debug_sl_level;
51 extern int _debug_gamelog_level;
52 extern int _debug_desync_level;
53 extern int _debug_console_level;
55 extern int _debug_random_level;
59 void SetDebugString(
const char *s,
void (*error_func)(
const std::string &));
71 const std::string_view name;
72 const uint32_t max_count;
74 uint64_t chrono_sum = 0;
76 constexpr
State(std::string_view name, uint32_t max_count) : name(name), max_count(max_count) { }
86 this->state.chrono_sum += (std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now() - this->chrono_start)).count();
87 if (++this->state.count == this->state.max_count) {
88 Debug(misc, 0,
"[{}] {} us [avg: {:.1f} us]", this->state.name, this->state.chrono_sum, this->state.chrono_sum /
static_cast<double>(this->state.count));
89 this->state.count = 0;
90 this->state.chrono_sum = 0;
95 void ShowInfoI(
const std::string &str);
96 #define ShowInfo(format_string, ...) ShowInfoI(fmt::format(FMT_STRING(format_string) __VA_OPT__(,) __VA_ARGS__))
std::string GetDebugString()
Print out the current debug-level.
std::string GetLogPrefix(bool force=false)
Get the prefix for logs.
std::chrono::high_resolution_clock::time_point chrono_start
real time count.
void DumpDebugFacilityNames(std::back_insert_iterator< std::string > &output_iterator)
Dump the available debug facility names in the help text.
#define Debug(category, level, format_string,...)
Ouptut a line of debugging information.
Persistent state for TicToc profiling.
void DebugReconsiderSendRemoteMessages()
Reconsider whether we need to send debug messages to either NetworkAdminConsole or IConsolePrint.
void DebugSendRemoteMessages()
Send the queued Debug messages to either NetworkAdminConsole or IConsolePrint from the GameLoop threa...
void DebugPrint(const char *category, int level, const std::string &message)
Internal function for outputting the debug line.
void SetDebugString(const char *s, void(*error_func)(const std::string &))
Set debugging levels by parsing the text in s.