C++ POSIX 上的故障转储
我有一个很大的 C++ 代码(某些应用程序的服务器)。 该应用程序很大,平均每 2 个月就会发生一次崩溃。 我无法用 gdb 模拟这次崩溃来捕获她。
是否存在一些很酷的 api 来分析故障转储上的内存(堆栈跟踪、本地变量)?
捕获堆栈损坏时间的最佳方法是什么?
I have a big C++ code (server for some application).
This application is big, and catch a crash per 2 months in average.
And i can't simulate this crash to catch her with gdb
.
Is exists some cool api to analyze memory on crash dump (stacktrace, local vars)?
What is best way to catch stack corruption time?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
启用核心转储,等待它崩溃。然后将核心加载到 gdb 中并像往常一样进行调试。
ulimit -c 无限制
Enable core dumping, wait for it to crash. Then load the core into gdb and debug as usual.
ulimit -c unlimited
您可以执行以下几项操作:
1. 对代码进行单元测试,并使用 valgrind 执行它们
2.启用核心转储(正如Let_Me_Be在他的回答中所说)
There are several things you can do :
1. Unit test your code, and execute them using valgrind
2. enable core dumps (as Let_Me_Be said in his answer)