jasonmolenda wrote:

@mchoo7 Hi, please include me in any future PRs related to unwinding like this. 
The transition between userland and kernel land via a syscall is a processor 
fault and the fault-catcher function in the kernel saves the register context 
in memory.  (I work with macOS/Darwin systems and know exactly how it works 
there, but I expect most systems are similar)  The correct way to get unwinds 
that cross this boundary are for the fault-catcher routine in the kernel 
(written in assembly) to have `.cfi` directives expressing where to find the 
saved register context via a non-volatile (aka callee-preserved) register.  
Then the unwinds work cleanly across the system call.  You also see this (and 
it's more important) in kernel faults / timer interrupts entirely within kernel 
land.

https://github.com/llvm/llvm-project/pull/192184
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to