mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 11:36:24 +01:00
Refactor debugger and byond-tracy init (#90288)
## About The Pull Request This refactors code related to debugger and byond-tracy `/datum/debugger` and `/datum/tracy` - which live in the `GLOBAL_REAL` vars `Debugger` and `Tracy` respectively. This allows code related to those two to be grouped together in their own files, rather than mashed into `world.dm` with a bunch of other shit - while it still initializes during the same stages of init. In addition, this also ports https://github.com/BeeStation/BeeStation-Hornet/pull/8947, which prints runtime errors to chat when the debugger is enabled. <details> <summary><h3>Proof of Testing</h3></summary>      </details> ## Why It's Good For The Game Reduces some `GLOB` pollution, and groups a bunch of related code into dedicated files and datums. It's simply cleaner. Printing runtime errors to chat is also very useful, as it allows you to see when shit is fuck, if you don't want a breakpoint pause for each error. ## Changelog 🆑 refactor: Refactored some code related to initialization. code: Runtime errors will now print to the chat while debugging. /🆑
This commit is contained in:
@@ -881,29 +881,27 @@ ADMIN_VERB(check_missing_sprites, R_DEBUG, "Debug Worn Item Sprites", "We're can
|
||||
if(!icon_exists(actual_file_name, sprite.icon_state))
|
||||
to_chat(user, span_warning("ERROR sprites for [sprite.type]. Suit Storage slot."), confidential = TRUE)
|
||||
|
||||
#ifndef OPENDREAM
|
||||
#ifndef OPENDREAM_REAL
|
||||
ADMIN_VERB(start_tracy, R_DEBUG, "Run Tracy Now", "Start running the byond-tracy profiler immediately", ADMIN_CATEGORY_DEBUG)
|
||||
if(GLOB.tracy_initialized)
|
||||
if(Tracy.enabled)
|
||||
to_chat(user, span_warning("byond-tracy is already running!"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
return
|
||||
else if(GLOB.tracy_init_error)
|
||||
to_chat(user, span_danger("byond-tracy failed to initialize during an earlier attempt: [GLOB.tracy_init_error]"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
else if(Tracy.error)
|
||||
to_chat(user, span_danger("byond-tracy failed to initialize during an earlier attempt: [Tracy.error]"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
return
|
||||
message_admins(span_adminnotice("[key_name_admin(user)] is trying to start the byond-tracy profiler."))
|
||||
log_admin("[key_name(user)] is trying to start the byond-tracy profiler.")
|
||||
GLOB.tracy_initialized = FALSE
|
||||
GLOB.tracy_init_reason = "[user.ckey]"
|
||||
world.init_byond_tracy()
|
||||
if(GLOB.tracy_init_error)
|
||||
to_chat(user, span_danger("byond-tracy failed to initialize: [GLOB.tracy_init_error]"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
message_admins(span_adminnotice("[key_name_admin(user)] tried to start the byond-tracy profiler, but it failed to initialize ([GLOB.tracy_init_error])"))
|
||||
log_admin("[key_name(user)] tried to start the byond-tracy profiler, but it failed to initialize ([GLOB.tracy_init_error])")
|
||||
if(!Tracy.enable("[user.ckey]"))
|
||||
var/error = Tracy.error || "N/A"
|
||||
to_chat(user, span_danger("byond-tracy failed to initialize: [error]"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
message_admins(span_adminnotice("[key_name_admin(user)] tried to start the byond-tracy profiler, but it failed to initialize ([error])"))
|
||||
log_admin("[key_name(user)] tried to start the byond-tracy profiler, but it failed to initialize ([error])")
|
||||
return
|
||||
to_chat(user, span_notice("byond-tracy successfully started!"), avoid_highlighting = TRUE, type = MESSAGE_TYPE_DEBUG, confidential = TRUE)
|
||||
message_admins(span_adminnotice("[key_name_admin(user)] started the byond-tracy profiler."))
|
||||
log_admin("[key_name(user)] started the byond-tracy profiler.")
|
||||
if(GLOB.tracy_log)
|
||||
rustg_file_write("[GLOB.tracy_log]", "[GLOB.log_directory]/tracy.loc")
|
||||
if(Tracy.trace_path)
|
||||
rustg_file_write("[Tracy.trace_path]", "[GLOB.log_directory]/tracy.loc")
|
||||
|
||||
ADMIN_VERB_CUSTOM_EXIST_CHECK(start_tracy)
|
||||
return CONFIG_GET(flag/allow_tracy_start) && fexists(TRACY_DLL_PATH)
|
||||
|
||||
Reference in New Issue
Block a user