Debugger: don't persist log.channel.set changes to the saved config

log.channel.set is meant for temporary, session-only diagnostic
tweaks (e.g. quieting a noisy channel while investigating something
over the WebSocket debugger). It was going through the same
SetLogLevel/SetEnabled calls the UI settings use, so a normal app
exit would persist whatever channels/levels the debugger last left
set, silently overwriting the user's real saved log preferences for
future runs - discovered when a later session's default logging
looked "off" for no apparent reason.

LogManager now tracks whether the debugger has touched channel
config this run and skips SaveConfig() entirely if so, leaving
whatever's already on disk untouched.
This commit is contained in:
Henrik Rydgård
2026-08-21 10:32:21 +02:00
parent e64ed141b3
commit c6061aebca
6 changed files with 30 additions and 9 deletions
+1 -1
View File
@@ -2199,7 +2199,7 @@ int __KernelStartModule(SceUID moduleId, u32 argsize, u32 argAddr, u32 returnVal
// TODO: Why do we skip smoption->attribute here?
SceUID threadID = __KernelCreateThread(module->nm.name, moduleId, entryAddr, priority, stacksize, attribute, 0, (module->nm.attribute & 0x1000) != 0);
_dbg_assert_(threadID > 0);
_dbg_assert_msg_(threadID > 0, "__KernelCreateThread returned %08x", threadID);
// TOOD: Check the return value and bail?
__KernelStartThreadValidate(threadID, argsize, argAddr);
__KernelSetThreadRA(threadID, NID_MODULERETURN);