Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Mixed mode exception handling (mono#4777)
* [mixed] Add beginnings of unwinding support for interp->jit transitions by pushing an LMF frame on the stack when exiting interpreted code. * [runtime] Add a mono_debug_lookup_source_location_by_il () helper function to lookup a source location using an IL offset. * [mixed] Add support for mixed mode managed stack walks. * [interp] Generate line number info for interpreted code, using the same MonoDebugMethodJitInfo structure used by the JIT. * [interp] Pass the clause index to the MINT_ENDFINALLY opcode. Not yet used. * [interp] Create a MonoJitInfo structure for each interpreted method. Not yet used. * [interp] Add a mono_interp_set_resume_state () function which can be used to set the frame/ip the interpreter will resume execution from when execution returns to it. * [mixed] Add support for mixed mode exception handling by extending the normal JIT exception handling code in mini-exceptions.c to handle interpreted frames as well. * [jit] Add an Unwinder type to reduce the amount of code duplication when unwinding though interpreter frames. * [interp] Fix the !ENABLE_INTERPRETER build. * [interp] Disable an assert which is hit even when running without --interpreter. * Fix a comment. * [interp] Fix an assertion. Fix/add comments.
- Loading branch information
Showing
16 changed files
with
680 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.