【问题标题】:How can I find a memory leak of a running process?如何找到正在运行的进程的内存泄漏?
【发布时间】:2012-04-15 03:16:36
【问题描述】:

有没有办法,我可以找到正在运行的进程的内存泄漏?我可以在进程开始之前使用 Valgrind 来查找内存泄漏。我可以使用 GDB 将其附加到正在运行的进程。如何调试正在运行的进程的内存泄漏?请指教。谢谢。

【问题讨论】:

  • 有什么特别的原因为什么你不能使用 Valgrind?只是好奇。
  • 好吧,如果一个进程已经在运行,有没有办法可以附加它?
  • 我的意思是,为什么必须将它附加到正在运行的进程? IE。为什么不直接用 Valgrind 运行这个过程呢?
  • 例如,如果你正在运行一个需要几个小时的模拟器,那么你可以停止它并再次运行它......或者如果你有一个已经在运行的进程,那么你可以't stop and check....你可以通过附加gdb进行调试,但内存泄漏

标签: c debugging memory-leaks


【解决方案1】:

Profilers 检测代码。因此,您必须“通过”它们运行您的应用程序。如果您无法使用 gdb 解决问题,并且由于某种原因无法创建新实例并使用分析器进行测试,我会说您有麻烦。

【讨论】:

  • 有没有办法用 gdb 查找内存泄漏?
  • 您可以检查变量的值。所以,这就像大海捞针一样,除非你的应用程序很小或者你有强烈的怀疑并且有针对性的搜索。所以它在技术上可以找到它,但 gdb 绝不会为你拼出任何东西,而且可能不实用。
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 2018-11-12
  • 2014-03-01
  • 1970-01-01
  • 2011-01-09
相关资源
最近更新 更多