C++;SIGSEGV如何获取stacktrace? 我有C++开发的C++服务器应用程序。这个应用程序是多线程的。在生产环境中,出现了大量的SIGSEGV信号

C++;SIGSEGV如何获取stacktrace? 我有C++开发的C++服务器应用程序。这个应用程序是多线程的。在生产环境中,出现了大量的SIGSEGV信号,c++,memory-leaks,segmentation-fault,C++,Memory Leaks,Segmentation Fault,我必须调试并更正此应用程序 是否有办法登录stackTrace的信号处理程序,以查看问题发生的位置?我是否必须使用外部应用程序,比如valgrind(我不知道是否可以:valgrind网站告诉我应用程序运行速度会慢很多…) 谢谢你的帮助 致以最良好的祝愿 Mikaël PLOUHINEC据我所知,您必须编写自己的代码才能获得stacktrace,是的,这是可能的。我看到过一个很久以前用C编写的实现。为什么不检查errno变量来确定它被设置为什么?您可以使用valgrind执行模拟服务器,以查找多

我必须调试并更正此应用程序

是否有办法登录stackTrace的信号处理程序,以查看问题发生的位置?我是否必须使用外部应用程序,比如valgrind(我不知道是否可以:valgrind网站告诉我应用程序运行速度会慢很多…)

谢谢你的帮助

致以最良好的祝愿


Mikaël PLOUHINEC

据我所知,您必须编写自己的代码才能获得stacktrace,是的,这是可能的。我看到过一个很久以前用C编写的实现。为什么不检查
errno
变量来确定它被设置为什么?您可以使用valgrind执行模拟服务器,以查找多个内存泄漏和不正确的内存访问。在实际环境中,您可以使用gdb调试核心转储文件。至少,如果问题仍然存在,请将gdb实例附加到您的流程并。。。等待sigsev发出