I am reading about exception support in C++, probably the result applies to other languages as well.
https://wiki.osdev.org/C%2B%2B_Exception_Support
http://www.ucw.cz/~hubicka/papers/abi/node25.html
There is lots of stuff going on, I am a bit overwhelmed. My question is during the unwinding process, does C++ require help from kernel (e.g. setjmp/longjmp)? Or the entire process happen only in user space? It occurs to me task structs live inside kernel thus modifications from directly from user space seems not possible, correct me if I am wrong. Thank you!