feat: show throwing plugin in unhandled managed exceptions

This commit is contained in:
goat 2023-04-11 19:27:26 +02:00
parent 063a9408e1
commit 1096a49dd6
No known key found for this signature in database
GPG key ID: 49E2AA8C6A76498B
2 changed files with 32 additions and 4 deletions

View file

@ -1300,14 +1300,14 @@ Thanks and have fun!";
}
/// <summary>
/// Get the plugin that called this method by walking the stack,
/// Get the plugin that called this method by walking the provided stack trace,
/// or null, if it cannot be determined.
/// At the time, this is naive and shouldn't be used for security-critical checks.
/// </summary>
/// <param name="trace">The trace to walk.</param>
/// <returns>The calling plugin, or null.</returns>
public LocalPlugin? FindCallingPlugin()
public LocalPlugin? FindCallingPlugin(StackTrace trace)
{
var trace = new StackTrace();
foreach (var frame in trace.GetFrames())
{
var declaringType = frame.GetMethod()?.DeclaringType;
@ -1328,6 +1328,14 @@ Thanks and have fun!";
return null;
}
/// <summary>
/// Get the plugin that called this method by walking the stack,
/// or null, if it cannot be determined.
/// At the time, this is naive and shouldn't be used for security-critical checks.
/// </summary>
/// <returns>The calling plugin, or null.</returns>
public LocalPlugin? FindCallingPlugin() => this.FindCallingPlugin(new StackTrace());
private void DetectAvailablePluginUpdates()
{
var updatablePlugins = new List<AvailablePluginUpdate>();