【问题标题】:Thread stack backtraces when program running under valgrind is interrupted在 valgrind 下运行的程序被中断时线程堆栈回溯
【发布时间】:2009-12-21 20:50:18
【问题描述】:

我有一个服务器程序,它没有非常干净/优雅的关闭(一般不应该终止)。在跟踪内存泄漏时,我在 valgrind 下运行它,但最后不得不通过信号 (^C) 终止进程。通常,当环境安静时,我会尝试终止进程,但某些线程可能一直在忙于处理作业,并且它们持有的内存会导致误报。为了协助分析,valgrind中是否有任何方法(工具),以便它可以在程序退出时(通过信号?)打印线程的回溯。

【问题讨论】:

    标签: multithreading valgrind backtrace


    【解决方案1】:

    我知道这很不方便,但是您能否让您的程序在收到此信号时转储核心,然后使用gdb 诊断核心转储?

    【讨论】:

      【解决方案2】:

      不确定我是否完全理解您的问题,但您可以通过 gdb 打印所有 pthread 的回溯:

      thread apply all bt
      

      【讨论】:

      • 其实程序是在valgrind下运行的,我想要/equivalent/作为工具的退出钩子。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      相关资源
      最近更新 更多