当我收到导致核心转储的信号时,我想运行我自己的处理程序以将siginfo_t和ucontext_t结构复制到全局变量,以便可以在核心转储中访问它们。目前在我的处理程序结束时,我重新分配默认处理程序并调用raise(thesig)。这样做的问题是核心转储“信息寄存器”显示了我的处理程序中寄存器的状态,而不是原始信号时的状态。我意识到,因为我已经保存了ucontext_t,所以我可以在其中查找原始寄存器值,但是当核心转储在团队中传递时,这些知识可能会丢失/忘记。所以我的问题是:有没有办法重新发出信号,并确保核心转储文件保存原始信号的寄存器状态?我想也许我可以使用一些内联汇编来手动恢复处理程