Add "EnableLineDebugging" core.cfg option (#2240)

Allow extensions to register a debug break handler in the SourcePawn VM.

Enable line debugging support in the VM before any plugin is loaded through a core.cfg option.
This commit is contained in:
peace-maker 2025-01-07 00:38:55 +01:00 committed by GitHub
parent 74f1f8f6bb
commit a8c91db585
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 0 deletions

View File

@ -138,4 +138,11 @@
* "jitdump" - Generate extended perf metadata (Linux only - function names, bytecode, and source information)
*/
"JITMetadata" "default"
/**
* Setup the SourcePawn VM to enable extensions to use a debugging API to step through
* plugins line by line. This heavily decreases server performance and should NEVER be
* used on a production server, but ONLY during plugin development.
*/
"EnableLineDebugging" "no"
}

View File

@ -365,6 +365,12 @@ void SourceModBase::StartSourceMod(bool late)
g_pSourcePawn2->InstallWatchdogTimer(atoi(timeout) * 1000);
}
const char *linedebugger = GetCoreConfigValue("EnableLineDebugging");
if (linedebugger != NULL && strcasecmp(linedebugger, "yes") == 0)
{
g_pPawnEnv->EnableDebugBreak();
}
SH_ADD_HOOK(IServerGameDLL, Think, gamedll, SH_MEMBER(logicore.callbacks, &IProviderCallbacks::OnThink), false);
}