【问题标题】:valgrind detect fd leak of its ownvalgrind 检测自己的 fd 泄漏
【发布时间】:2015-04-29 23:05:26
【问题描述】:

我正在使用 valgrind 来检测内存泄漏。但是,valgrind 会检测程序中的 fd 泄漏。像下面这样。

==00:00:00:40.685 31162== FILE DESCRIPTORS: 4 open at exit.
==00:00:00:40.685 31162== Open file descriptor 3: client.valgrind(this is open by valgrind)
==00:00:00:40.685 31162==    <inherited from parent>
==00:00:00:40.685 31162== 
==00:00:00:40.685 31162== Open file descriptor 2: /dev/pts/19
==00:00:00:40.685 31162==    <inherited from parent>
==00:00:00:40.685 31162== 
==00:00:00:40.685 31162== Open file descriptor 1: /dev/pts/19
==00:00:00:40.685 31162==    <inherited from parent>
==00:00:00:40.685 31162== 
==00:00:00:40.685 31162== Open file descriptor 0: /dev/pts/19
==00:00:00:40.685 31162==    <inherited from parent>

但是client.valgrind是valgrind的日志文件,0、1、2是标准输出输入和err文件fd。我没有明显地打开它们。我感到困惑。

【问题讨论】:

  • 你能说明你是如何调用 valgrind 的吗?

标签: valgrind logfile


【解决方案1】:

我不认为这应该被认为是一个问题,valgrind 通知你这些是完全正常的。为什么它应该以不同的方式处理前 3 个 fd?如果您在从 main 返回之前关闭它们 (close(0); close(1); close(2);),这些打印输出将会消失,但这显然是不必要的。

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多