mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
boot: implement --unhandled-exception=stalldebug (#1690)
Using this option will stall the crashed thread until the debugger attaches, so that the newly attached debugger can be handed over the exception, enabling breaking at correct stack location. `--no-exception-handlers` injector option controlled whether Dalamud Crash Handler would intercept exceptions before. Those are now either `default` or `none` option for `--unhandled-exception`.
This commit is contained in:
parent
b85914c54c
commit
8ff4662f1f
8 changed files with 101 additions and 13 deletions
|
|
@ -145,7 +145,7 @@ public record DalamudStartInfo
|
|||
public bool CrashHandlerShow { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether to disable all kinds of global exception handlers.
|
||||
/// Gets or sets a value indicating how to deal with unhandled exceptions.
|
||||
/// </summary>
|
||||
public bool NoExceptionHandlers { get; set; }
|
||||
public UnhandledExceptionHandlingMode UnhandledException { get; set; }
|
||||
}
|
||||
|
|
|
|||
16
Dalamud.Common/UnhandledExceptionHandlingMode.cs
Normal file
16
Dalamud.Common/UnhandledExceptionHandlingMode.cs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
namespace Dalamud.Common;
|
||||
|
||||
/// <summary>Enum describing what to do on unhandled exceptions.</summary>
|
||||
public enum UnhandledExceptionHandlingMode
|
||||
{
|
||||
/// <summary>Always show Dalamud Crash Handler on crash, except for some exceptions.</summary>
|
||||
/// <remarks>See `vectored_exception_handler` in `veh.cpp`.</remarks>
|
||||
Default,
|
||||
|
||||
/// <summary>Waits for debugger if none is attached, and pass the exception to the next handler.</summary>
|
||||
/// <remarks>See `exception_handler` in `veh.cpp`.</remarks>
|
||||
StallDebug,
|
||||
|
||||
/// <summary>Do not register an exception handler.</summary>
|
||||
None,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue