Update notes on debugging
We fixed SEH unwinds on callbacks some time ago
This commit is contained in:
parent
7ec1008621
commit
e6c33e676a
|
@ -59,15 +59,10 @@ Bring lots of tools, and lots of self loathing.
|
||||||
|
|
||||||
* Within the guest, DWARF unwinding information is available and libunwind is used. Guest C++ programs can freely use exceptions,
|
* Within the guest, DWARF unwinding information is available and libunwind is used. Guest C++ programs can freely use exceptions,
|
||||||
and Mednafen does so without issue.
|
and Mednafen does so without issue.
|
||||||
* Unwinding through any stack that is not guest content will likely explode.
|
* Trying to unwind out of the guest stack will not work, so there needs to be a top level catch.
|
||||||
* Within the host, rust unwinds usually make some SEH explosion that crashes the application.
|
* SEH unwinds, either from C# or Rust code, while in a callback from guest code back to host code, will unwind fine, but they
|
||||||
* None of them were meant to be recoverable anyway.
|
will skip right past the guest code. This recovers the host system, but means that the guest is likely hosed as it
|
||||||
* C# exceptions that occur when there is guest code on the stack usually cause a complete termination.
|
had no chance to run any dtors.
|
||||||
* So a callback to managed from within a waterbox core, etc.
|
|
||||||
* I never figured this one out. Guest execution is fully done on vanilla host stacks, and we should be doing nothing
|
|
||||||
that would make this fail. But it does.
|
|
||||||
* Since the rust waterboxhost, this now will only happen from emulator core specific callbacks, since the rust waterboxhost
|
|
||||||
does not call out to C# from within a syscall handler, ever.
|
|
||||||
* Any unwinding on a libco cothread will likely make me laugh.
|
* Any unwinding on a libco cothread will likely make me laugh.
|
||||||
|
|
||||||
## Linux
|
## Linux
|
||||||
|
|
Loading…
Reference in New Issue