You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ScriptEngine: Add assembly dumping setting for debugging of reloaded plugins (#15)
Similarly to the LoadDumpedAssemblies BepInEx Preloader option, this adds a config option which dumps Assemblies & Symbols to the disk.
The assemblies are then loaded from the saved dll so that debuggers can then load the matching symbols & break/step through plugin code.
Tested successfully on Rider but should work for all debuggers that are configured to read symbols from the BepInEx folder.
IncludeSubdirectories=Config.Bind("General","IncludeSubdirectories",false,newConfigDescription("Also load plugins from subdirectories of the scripts folder."));
46
49
EnableFileSystemWatcher=Config.Bind("AutoReload","EnableFileSystemWatcher",false,newConfigDescription("Watches the scripts directory for file changes and automatically reloads all plugins if any of the files gets changed (added/removed/modified)."));
47
50
AutoReloadDelay=Config.Bind("AutoReload","AutoReloadDelay",3.0f,newConfigDescription("Delay in seconds from detecting a change to files in the scripts directory to plugins being reloaded. Affects only EnableFileSystemWatcher."));
51
+
DumpAssemblies=Config.Bind<bool>("AutoReload","DumpAssemblies",false,"If enabled, BepInEx will save patched assemblies & symbols into BepInEx/ScriptEngineDumpedAssemblies.\nThis can be used by developers to inspect and debug plugins loaded by ScriptEngine.");
thrownewInvalidOperationException($"A plugin with GUID {metadata.GUID} is already loaded! ({existingPluginInfo.Metadata.Name} v{existingPluginInfo.Metadata.Version})");
thrownewInvalidOperationException($"A plugin with GUID {metadata.GUID} is already loaded! ({existingPluginInfo.Metadata.Name} v{existingPluginInfo.Metadata.Version})");
0 commit comments