我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.
我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).
我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?
我在C++的应用程序中使用boost :: shared_ptr.内存问题非常严重,应用程序占用大量内存.
但是,因为我将每个新建对象放入shared_ptr,当应用程序退出时,不会检测到内存泄漏.
必须有一些像std::vector<shared_ptr<> >池持有资源的东西.调试时如何知道谁拥有shared_ptr?
很难逐行检查代码.代码太多......
非常感谢!
我有一段时间在C++社区,听到原始指针"是邪恶的",应尽可能避免它们.虽然在原始指针上使用智能指针的主要原因之一是"防止"内存泄漏.所以我的问题是:即使使用智能指针,是否仍然可能有内存泄漏?如果是,那怎么可能呢?
c++ ×3
memory-leaks ×2
assert ×1
boost ×1
crash ×1
gcc ×1
raii ×1
shared-ptr ×1
stack-trace ×1