在我提出问题之前,我简要介绍一下如何从客户那里回溯。 我在linux上编写了一个C ++应用程序(opensuse)。
此应用程序由脚本(启动程序)启动,如果应用程序崩溃,则会生成核心转储(因为ulimit -c unlimited)。 然后启动器从核心文件和gdb生成回溯,并再次启动应用程序,这使用户可以发送包含回溯的崩溃报告。
现在我的问题和我的问题:
提前致谢。
只是一句话:
答案 0 :(得分:0)
您不必添加整个gdb
只是为了执行崩溃程序的回溯。只需截取SIGBUS等信号,当发出信号时,您可以使用backtrace()或只是使用程序的pid调用gstack。
答案 1 :(得分:0)
如何在不以复制/粘贴形式here生成核心转储的情况下获取堆栈跟踪有一个很好的答案。
它将为stderr生成一个堆栈跟踪,但您可以轻松地执行不同的操作,例如使用HTTP等发布堆栈跟踪数据。