我有一个C ++程序:
我正在使用我发现的here方法来了解是否所有内存都已正确释放。但事实证明,每15次左右的迭代,我的程序会要求更多的内存,理论上不应该这样做。
我想知道请求内存的位置和原因,以及未解除分配的内容会导致程序随着时间的推移请求越来越多的内存。
我可以使用GDB。我的想法是:用我的程序运行strace
一点。中断程序并通过将其进程号传递给GDB来挂钩GDB。然后(也许?)尝试通过使用(可能是?)examine
GDB命令来找出发生了什么(因为strace打印了分配内存的地址,我可以使用GDB)。
但是,我不确定这是怎么回事,而且我也不完全确定如何阻止我的程序停止其进程。有什么帮助吗?
答案 0 :(得分:0)
您可以考虑尝试: