0
我正在阅读有关替代信号堆栈的Linux程序员手册。堆栈损坏并使用替代信号堆栈
http://www.kernel.org/doc/man-pages/online/pages/man2/sigaltstack.2.html
我看到SIGALTSTACK()当用户的堆栈被破坏,使用时或当它溢出。我的问题是如何在运行时检测堆栈是否损坏?
在生产中我正在运行的程序中,如果我的程序检测到堆栈被损坏,我想要替代信号堆栈。问这个问题是否正确?某些线程中的人们谈论使用Valgrind(可能还有其他)的调试工具,但不幸的是,这种奢侈品在生产中不可用。
我已经阅读过,但我仍然指出。我明白那个。所以我真的没有看到这个功能的任何意义,仅仅是因为在给定机制的情况下,我只是为了防备为备用堆栈预留内存;可能会或可能不会发生。 –
SIGSEGV处理程序的另一个用途是在内存不足或用尽堆栈情况下获取堆栈跟踪。这是有用的,但只会有效,如果你有一个备用堆栈,并且你的“主”堆栈没有损坏(否则堆栈跟踪是毫无意义的) – Mat
嗨马特,我将不胜感激,如果你可以请回答这个问题 - http:///stackoverflow.com/questions/29761742/examinig-alternate-signal-stack-different-ways-to-allocate-it –