labath added a comment.

Since the signal context contains a copy of all registers, maybe you should be 
setting all of them. The other registers will not be used for unwinding, but 
they will enable to user to inspect the registers in the stack frames above the 
signal handler.
One way to demonstrate (and test) this would be to have a bit of inline asm, 
which sets all registers to known values, and then raises a signal (SIGILL is 
probably the easiest to raise from asm). Then lldb breaks on the signal 
handler, goes up the stack, and observes the registers.



================
Comment at: lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp:295
+  unwind_plan_sp->SetUnwindPlanForSignalTrap(eLazyBoolYes);
+  unwind_plan_sp->SetRegisterKind(eRegisterKindDWARF);
+
----------------
labath wrote:
> Ah now I see that it worked because of this. Maybe you could try dropping 
> this line and replace the dwarf numbers with generic regnums?
Except of course, if you end up setting all of the registers.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112069/new/

https://reviews.llvm.org/D112069

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to