From 70a32fcfc6b42f7ed26021f440512ad3a7fa5042 Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 11 Apr 2017 20:38:29 -0400 Subject: [PATCH] Adds admin verbs for debugging process controllers * Adds a verb for debugging any of the running process controllers. Unlike the old debug controller verb, this one is not hard coded, so any present and future processes will be included. Requires R_DEBUG (and R_ADMIN if in paranoid mode) * Adds a verb for debugging the process scheduler itself. This is hidden by default until debug verbs are shown. Requires R_DEBUG (and R_ADMIN if in paranoid mode) --- code/controllers/verbs.dm | 23 +++++++++++++++++++ code/modules/admin/admin_verbs.dm | 3 +++ code/modules/admin/verbs/mapping.dm | 1 + .../Leshana-vplk-process-debug-verbs.yml | 4 ++++ 4 files changed, 31 insertions(+) create mode 100644 html/changelogs/Leshana-vplk-process-debug-verbs.yml diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index ee361c9888f..4a861c65dd3 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -100,3 +100,26 @@ feedback_add_details("admin_verb", "DXenobio") message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.") return + +/client/proc/debug_process_scheduler() + set category = "Debug" + set name = "Debug Process Scheduler" + set desc = "Debug the process scheduler itself. For vulpine use only." + + if(!check_rights(R_DEBUG)) return + if(config.debugparanoid && !check_rights(R_ADMIN)) return + debug_variables(processScheduler) + feedback_add_details("admin_verb", "DProcSchd") + message_admins("Admin [key_name_admin(usr)] is debugging the process scheduler.") + +/client/proc/debug_process(controller in processScheduler.nameToProcessMap) + set category = "Debug" + set name = "Debug Process Controller" + set desc = "Debug one of the periodic loop background task controllers for the game (be careful!)" + + if(!check_rights(R_DEBUG)) return + if(config.debugparanoid && !check_rights(R_ADMIN)) return + var/datum/controller/process/P = processScheduler.nameToProcessMap[controller] + debug_variables(P) + feedback_add_details("admin_verb", "DProcCtrl") + message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c33df0a691b..fd8a3c69f88 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -194,6 +194,7 @@ var/list/admin_verbs_debug = list( /client/proc/enable_debug_verbs, /client/proc/callproc, /client/proc/callproc_target, + /client/proc/debug_process, /client/proc/SDQL_query, /client/proc/SDQL2_query, /client/proc/Jump, @@ -212,6 +213,7 @@ var/list/admin_verbs_debug = list( var/list/admin_verbs_paranoid_debug = list( /client/proc/callproc, /client/proc/callproc_target, + /client/proc/debug_process, /client/proc/debug_controller ) @@ -280,6 +282,7 @@ var/list/admin_verbs_hideable = list( /client/proc/cmd_admin_list_open_jobs, /client/proc/callproc, /client/proc/callproc_target, + /client/proc/debug_process, /client/proc/Debug2, /client/proc/reload_admins, /client/proc/kill_air, diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 5661097aab7..c570fa2f0c3 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -162,6 +162,7 @@ var/list/debug_verbs = list ( ,/client/proc/setup_supermatter_engine ,/client/proc/atmos_toggle_debug ,/client/proc/spawn_tanktransferbomb + ,/client/proc/debug_process_scheduler ) diff --git a/html/changelogs/Leshana-vplk-process-debug-verbs.yml b/html/changelogs/Leshana-vplk-process-debug-verbs.yml new file mode 100644 index 00000000000..af0ffd3f9d6 --- /dev/null +++ b/html/changelogs/Leshana-vplk-process-debug-verbs.yml @@ -0,0 +1,4 @@ +author: Leshana +delete-after: True +changes: + - rscadd: "Added admin verbs for debugging the scheduled process controllers."