【问题标题】:valgrind find memory leak after call evtimer_del from libevent从 libevent 调用 evtimer_del 后,valgrind 发现内存泄漏
【发布时间】:2018-12-09 13:34:27
【问题描述】:

我只是用 event_new() 创建一个新事件,
最后用 evtimer_del() 删除它。
然后 valgrind 警告我存在内存泄漏(1 个块中的 128 个字节)。
我错过了什么?

代码:

evthread_use_pthreads();
auto _base = event_base_new();
event_init();
event* _timer = event_new(_base, -1, EV_TIMEOUT, NULL, NULL);
evtimer_del(_timer);
event_base_free(_base);

【问题讨论】:

  • 将文本作为图像发布可能不是一个好主意。
  • 我把代码放在了文本中,抱歉,我只是想通过图像来提供更多信息。

标签: c++ valgrind libevent


【解决方案1】:

你使用了错误的释放函数,来自docs:

event_new()
退货
一个新分配的结构事件,以后必须用event_free() 释放。

虽然evtimer_delevent_del() 的别名,但它只会取消列出事件。

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2013-06-24
    • 1970-01-01
    • 2020-03-31
    • 2016-03-15
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多